J'ai le même script php exécuté sur localhost - mon PC avec XAMPP et sur un serveur hébergé. Cela fonctionne depuis mon PC, mais pas depuis le serveur hébergé.
Lorsque 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: [email protected] FAILED
Je soupçonne qu'un paramètre de configuration doit être modifié sur le serveur, mais je ne sais pas lequel. Tout avis 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
La solution consistait à activer le SMTP sortant à partir des paramètres du serveur.
Sur les serveurs exécutant le WHM de cPanel, cela se trouve dans la section "Tweak Settings" de WHM.
L'option est d'activer/désactiver - choisissez désactiver.
Avertissement: cette modification redirigera les connexions SMTP sortantes et permettra aux comptes d'établir des connexions directes, ce qui pourrait augmenter vos chances de voir votre serveur mis sur 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 ceci
/scripts/smtpmailgidonly off
tu devrais 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/