„Nie otrzymano hasła z serwera: 535 nieprawidłowe dane uwierzytelniające” podczas wysyłania z Gmaila i phpMailera


Mam ten sam skrypt php działający na hoście lokalnym - moim komputerze z XAMPP i na serwerze hostowanym. Działa z mojego komputera, ale nie z serwera hosta.
Kiedy wysyłam go z serwera hosta, otrzymuję następujące dane wyjściowe:
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

Podejrzewam, że na serwerze znajduje się parametr konfiguracyjny, który należy zmienić, ale nie wiem, który. Każda rada byłaby bardzo mile widziana!
Oto kod:
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
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Rozwiązaniem było włączenie wychodzącego SMTP z ustawień serwera.
Na serwerach z cPanel WHM jest to w sekcji „Ustawienia podkręcania” WHM.
Opcją jest włączenie/wyłączenie - wybierz Wyłącz.
Uwaga: wprowadzenie tej zmiany przekieruje wychodzące połączenia SMTP, umożliwiając kontom nawiązywanie bezpośrednich połączeń, co może zwiększyć szanse na umieszczenie na czarnej liście serwera.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

to jest połączone z

WHM/cPanel
, możesz zrobić to samo, co w poprzedniej odpowiedzi lub z powłoką, wpisując to
/scripts/smtpmailgidonly off

powinieneś wziąć
"SMTP Mail protection has been disabled. All users may make outbound smtp connections."

Przeczytaj więcej tutaj

https://forums.cpanel.net/thre ... 60971
https://forums.cpanel.net/thre ... 0971/
/

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się