"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/