我一直使用PHPMailer
代表我的 office365 帐户发送SMTP电子邮件,并且已经运行了大约一周。然后突然停止工作,我不知道发生了什么变化。
当我在PHPMailer中启用高调试日志记录时,会看到以下内容:
SMTP->从服务器:220 CY4PR15CA0011.outlook.office365.com Microsoft ESMTP邮件服务已于2019年1月10日星期四13:30:20 +0000 SMTP->就绪 从服务器:250-CY4PR15CA0011.outlook.office365.com您好 [198.154.243.158] 250尺寸157286400 250管250-DSN 250-增强状态代码250-STARTTLS 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250 SMTPUTF8 SMTP->错误:AUTH不被接受 服务器:504 5.7.4无法识别的身份验证类型 [CY4PR15CA0011.namprd15.prod.outlook.com] SMTP->来自服务器:250 2.0.0重置
这似乎是最相关的:
服务器未接受AUTH:504 5.7.4无法识别的身份验证 输入
以下是我原本的SMTP设置,该设置已交给PHPMailer:
smtpAuth: true
smtpSecure: STARTTLS
smtpHost: smtp.office365.com
smtpPort: 587
smtpUsername: [hidden]
smtpPassword: [hidden]
emailTo: [hidden]
以及实际的PHP代码:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = $smtpAuth;
$mail->SMTPSecure = $smtpSecure;
$mail->Host = $smtpHost;
$mail->Port = $smtpPort;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->SetFrom($smtpSenderDisplay);
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($emailTo);
作为健全性检查,我在Windows Live Mail
中设置了具有相同设置的SMTP帐户-一切正常。没有错误。外发电子邮件将落在我拥有的其他电子邮件帐户的收件箱中。
因此Windows Live Mail的操作与我的PHP脚本的操作有所不同,请记住,直到几天前我的PHP脚本都可以正常工作。
有什么想法需要改变吗?
答案 0 :(得分:0)
Microsoft将SMTP加密要求从STARTTLS更改为TLS。解决了。