Не удается отправить письмо с помощью PHPMailer с помощью Gmail (Не удалось подключиться к серверу) - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь отправить электронное письмо с помощью PHPMailer.Я видел несколько тем об отправке электронной почты серверами Gmail с использованием этого пакета, но мне это не удалось.

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP

$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587; // or 587

$mail->Username = "myEmailAddress@gmail.com";
$mail->Password = "MyGmailPassword";
$mail->setFrom('myEmailAddress@gmail.com', 'First Last');
$mail->addAddress('MyTargetEmail@example.com', 'John Doe');

$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->Body = 'Text to be sent';

if(!$mail->send()){
    echo 'message was not sent: ' . $mail->ErrorInfo;
}
else{
    echo 'Successfully sent';
}

мой ответ:

2018-11-29 14:56:37 SMTP ERROR: Failed to connect to server:  (0)
<br>
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
<br>
message was not sent: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

1 Ответ

0 голосов
/ 29 ноября 2018

Вы отправляете письмо на неправильный порт / конфигурацию.В вашем коде он отправляется на порт 587, который обрабатывает соединения stmp, но вы отправляете его настроенным через ssl (который необходимо отправить через порт 465).

Вам ТОЛЬКО необходимоизмените, где он говорит ssl на "tls", и он будет работать.

$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587; // or 587
...