"Password not accepted from server: 535 Incorrect authentication data" lors de l'envoi avec GMail et phpMailer
j'ai le même script php qui tourne sur localhost - mon PC avec XAMPP et sur un serveur hébergé. Il fonctionne à partir de mon PC, mais pas à partir du serveur hébergé.
quand je l'envoie depuis le serveur hébergé, j'obtiens la sortie suivante:
SMTP -> ERROR: Password not accepted from server: 535 Incorrect authentication data  
SMTP -> ERROR: RCPT not accepted from server: 550-Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. dev.camppage.com 550-(patchvalues.com) [205.234.141.238]:50958 is not permitted to relay through 550 this server without authentication.  
SMTP Error: The following recipients failed: jdorner4@gmail.com FAILED
je soupçonne qu'il y a un paramètre de configuration qui doit être modifié sur le serveur, mais je ne sais pas lequel. Tout conseil serait grandement apprécié!
voici le code:
function send_gmail ($recipients, $subject, $message, $attachment_filenames = array()) 
{
  global $email_address, $email_password, $email_name;
  require_once ($_SERVER['DOCUMENT_ROOT']. '/php/PHPMailer/class.phpmailer.php');   
  $body  = $message;
  $body  = str_replace("", '', $body);
  $mail = new PHPMailer();
  $mail->CharSet = "UTF-8";
  $mail->IsSMTP();
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing) 0 - none; 1 - errors & messages; 2 - messages only
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  $mail->Port       = 465;                   // set the SMTP port
  $mail->Username   = $email_address;  // GMAIL username
  $mail->Password   = $email_password; // GMAIL password
  $mail->SetFrom($email_address);
  $mail->FromName   = $email_name;
  $mail->AddReplyTo($email_address,$email_name);
  $mail->Subject    = $subject;
  $mail->MsgHTML($body);
  $mail->IsHTML(true); // send as HTML
  if (isset ($recipients[0]))
  {
    foreach ($recipients AS $to)
    {
        $to_pieces = explode (",", $to, 2);
        $to_email = trim ($to_pieces[0]);
        if (isset ($to_pieces[1]))
            $to_name = trim ($to_pieces[1]);
        else
            $to_name = " ";
        $mail->AddAddress($to_email, $to_name);
    }
    $mail->IsHTML(true); // send as HTML
    if ($mail->Send()){
        return TRUE;
    } else {
        return FALSE;
    }
} 
else 
{
    return FALSE;
}
}
TIA
2 réponses
la solution était d'activer la SMTP sortante à partir des paramètres du serveur.
sur les serveurs qui exécutent le WHM de cPanel, ceci est situé sous la section" Réglages de Tweak " du WHM.
l'option est d'activer/désactiver - choose disable.
mise en garde: ce changement redirigera les connexions SMTP sortantes permettre aux comptes de faire des connexions directes qui peuvent augmenter vos chances de faire de votre serveur une liste noire.
ceci est lié à WHM / cPanel , vous pouvez faire la même chose que dans la réponse précédente ou à partir de shell en tapant ce
/scripts/smtpmailgidonly off
vous devriez obtenir
"SMTP Mail protection has been disabled.  All users may make outbound smtp connections."
plus de lecture ici https://forums.cpanel.net/threads/cant-enable-smtp-restrictions.360971/