Как я могу отправить письмо через PHPMAILER без SSL - порт 25? - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу отправить письмо без SSL, используя PHPMailer.Я включил режим отладки, чтобы я мог проверить детали в журналах.

    $mail = new PHPMailer\PHPMailer\PHPMailer();
    $mail->IsSMTP(true); // enable SMTP
    $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true; // authentication enabled
    $mail->SMTPSecure = false; // secure transfer enabled REQUIRED for Gmail
    $mail->Host = "mail.company.co.uk";
    $mail->Port = 25; // or 587
    $mail->IsHTML(true);
    $mail->Username = "email@company.co.uk";
    $mail->Password = "password_of_username";
    $mail->SetFrom($email,$name);
    $mail->Subject = $subject;
    $mail->Body = $message;
    $mail->AddAddress($to);

Это дает исключение:

2018-09-28 10:04:27 CLIENT -&gt; SERVER: EHLO localhost<br>
2018-09-28 10:04:27 CLIENT -&gt; SERVER: STARTTLS<br>
SMTP Error: Could not connect to SMTP host.<br>
2018-09-28 10:04:28 CLIENT -&gt; SERVER: QUIT<br>
2018-09-28 10:04:28 <br>
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting<br>
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

1 Ответ

0 голосов
/ 28 сентября 2018

Вы основали свой код на старом примере, который не помогает.Вы не можете видеть, что происходит, потому что вы использовали 1 для SMTPDebug;установите его на 2.

Ваш почтовый сервер объявляет, что поддерживает порт STARTTLS на порту 25, поэтому PHPMailer использует его автоматически.Вы можете полностью отключить шифрование, выполнив следующее:

$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = false;

Однако я бы порекомендовал этого не делать;вместо этого исправьте конфигурацию TLS.Возможно, вам необходимо обновить ваш локальный сертификат CA - подробности см. В руководстве по устранению неполадок.

...