Имя пользователя и пароль не принимаются

Я пытаюсь отправить электронное письмо, используя smtp gmail (см. Код ниже), но получаю сообщение об ошибке «Имя пользователя и пароль не приняты».

Я пробовал:

ни один из них не работает.

Вот код PHP:

function sendEmail($from, $fromName, $msg)
{
$mail = new PHPMailer();
$mail->SMTPDebug  = 4; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->WordWrap    = 900; // RFC 2822 Compliant for Max 998 characters per line
$mail->IsSMTP();

//$mail->Host = 'tls://smtp.gmail.com:587';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587; //465
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'yyyyyyy';

$mail->From = $from;
$mail->FromName = $fromName;

$mail->AddAddress('[email protected]', ' ');

$mail->IsHTML(true);

$mail->CharSet = 'UTF-8';
$mail->Priority = 1;
$mail->Timeout = 60;
$mail->SMTPKeepAlive = true;
$mail->Subject  = "subject here";
$mail->Body = $msg;
$mail->AltBody = 'testing..';
$ok = $mail->Send();

$mail->ClearAllRecipients();
$mail->ClearAttachments();

return $ok;
}

Обновить: Here's полное сообщение об ошибке (с DebugMode = 4)

2

Решение

После тестирования я получил это для работы, изменив хост, чтобы включить префикс tls.

function sendEmail($from, $fromName, $msg)
{
$mail = new PHPMailer();
$mail->SMTPDebug  = 4;
$mail->WordWrap    = 900;
$mail->IsSMTP();

//$mail->Host = 'tls://smtp.gmail.com:587';
$mail->Host = "tls://smtp.gmail.com";
$mail->Port = 587; //465
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'yyyyyyy';

// Define o remetente
$mail->From = $from;
$mail->FromName = $fromName;

$mail->AddAddress('[email protected]', ' ');

$mail->IsHTML(true);

$mail->CharSet = 'UTF-8';
$mail->Priority = 1;
$mail->Timeout = 60;
$mail->SMTPKeepAlive = true;
$mail->Subject  = "subject here";
$mail->Body = $msg;
$mail->AltBody = 'testing..';
$ok = $mail->Send();

$mail->ClearAllRecipients();
$mail->ClearAttachments();

return $ok;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]