PHPMailer& STARTTLS不发送电子邮件

时间:2017-12-08 10:07:38

标签: php phpmailer starttls

未使用此类设置发送消息

$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扩展名。 Dеbug输出在这里 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服务。 我不知道接下来要调查什么......

1 个答案:

答案 0 :(得分:0)

不太复杂 - 您的邮件服务器不支持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只是意味着它支持带有EHLO的“扩展SMTP”(以及所暗示的所有内容),而不仅仅是基本的SMTP HELO

顺便说一句 - SMTPDebug = 4对于这个级别的问题太吵了,你最多需要3个。此外,您正在使用旧版本的PHPMailer,升级。