PHPMailer 和 STARTTLS 不发送电子邮件
PHPMailer & STARTTLS not sending email
使用此类设置无法发送消息
$mail = new PHPMailer;
$mail->SMTPDebug = 4;
$mail->isSMTP();
$mail->Host = "domain.com";
$mail->SMTPAuth = true;
$mail->Username = "login";
$mail->Password = "pasw";
$mail->SMTPSecure = "tls";
$mail->Port = 2525;
$mail->CharSet = 'UTF-8';
已加载 openssl 扩展。调试输出在这里
https://justpaste.it/1ecjw
第一个问题行是
2017-12-08 09:48:53 SMTP -> get_lines(): $str is "502 5.5.1 command not supported in "STARTTLS""
telnet 说有ESMTP 服务。
我不知道接下来要调查什么...
不太复杂 - 您的邮件服务器不支持 STARTTLS
。如果是这样,它将出现在第一个 EHLO
命令之后的功能列表中,即:
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-AUTH CRAM-MD5 PLAIN LOGIN
250-AUTH=CRAM-MD5 PLAIN LOGIN
250-XACK
250-SIZE 0
250-VERP
250 DSN
STARTTLS
不在该列表中。它可能仍支持通过 SMTPSecure = 'ssl'
和 Port = 465
进行加密,但否则您将需要通过此未加密通道退回到最安全的身份验证选项,即 AuthType = 'CRAM-MD5'
.
ESMTP
只是意味着它支持 "Extended SMTP" 和 EHLO
(以及所有暗示),而不仅仅是基本的 SMTP HELO
.
顺便说一句 - SMTPDebug = 4
对于这个级别的问题来说太吵了,你最多需要 3 个。另外,您使用的是旧版本的PHPMailer,请升级。
使用此类设置无法发送消息
$mail = new PHPMailer;
$mail->SMTPDebug = 4;
$mail->isSMTP();
$mail->Host = "domain.com";
$mail->SMTPAuth = true;
$mail->Username = "login";
$mail->Password = "pasw";
$mail->SMTPSecure = "tls";
$mail->Port = 2525;
$mail->CharSet = 'UTF-8';
已加载 openssl 扩展。调试输出在这里
https://justpaste.it/1ecjw
第一个问题行是
2017-12-08 09:48:53 SMTP -> get_lines(): $str is "502 5.5.1 command not supported in "STARTTLS""
telnet 说有ESMTP 服务。 我不知道接下来要调查什么...
不太复杂 - 您的邮件服务器不支持 STARTTLS
。如果是这样,它将出现在第一个 EHLO
命令之后的功能列表中,即:
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-AUTH CRAM-MD5 PLAIN LOGIN
250-AUTH=CRAM-MD5 PLAIN LOGIN
250-XACK
250-SIZE 0
250-VERP
250 DSN
STARTTLS
不在该列表中。它可能仍支持通过 SMTPSecure = 'ssl'
和 Port = 465
进行加密,但否则您将需要通过此未加密通道退回到最安全的身份验证选项,即 AuthType = 'CRAM-MD5'
.
ESMTP
只是意味着它支持 "Extended SMTP" 和 EHLO
(以及所有暗示),而不仅仅是基本的 SMTP HELO
.
顺便说一句 - SMTPDebug = 4
对于这个级别的问题来说太吵了,你最多需要 3 个。另外,您使用的是旧版本的PHPMailer,请升级。