php - 实时服务器上的 IIS / PHPMailer 身份验证问题,但在本地主机上工作
问题描述
我可以通过我的外部 SMTP 服务器(livemail)发送电子邮件,但只能在本地主机上。在我的 Web 服务器(Windows 服务器,运行 IIS)上尝试完全相同的代码给了我:
SMTP 错误:无法验证。
这是代码:
$mail = new PHPMailer();
$mail->IsSMTP(); // enable SMTP
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->SMTPDebug = 3;
$mail->Host = gethostbyname('smtp.livemail.co.uk');
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
$mail->SMTPAuth = true;
$mail->Username = 'USERNAME';
$mail->Password = 'PASSWORD';
$mail->IsHTML(true);
$mail->SetFrom('EMAIL');
$mail->Subject = 'SUBJECT';
$mail->msgHTML('MESSAGE');
$mail->AddAddress("EMAIL");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg_sent = true;
}
我检查过的内容:
- SMTP 服务已安装并在我的 IIS 服务器上运行
- 防火墙出站和入站允许使用端口 25、465、587
我尝试通过我的 Gmail 帐户在我的 IIS 服务器上发送电子邮件,并启用允许不太安全的应用程序,并成功。
据我所知,问题不在于:
- 我的 PHPMailer 设置(因为它在现场使用 Gmail)
- 防火墙(我已经
tnc smtp.livemail.co.uk -port 465
在 Power Shell 上测试过,有响应)
我已经没有想法了,非常感谢您对此提供任何帮助。谢谢!
TLS:587 的完整错误日志是:
2020-05-01 11:43:00 Connection: opening to smtp.livemail.co.uk:587, timeout=300, options=array()
2020-05-01 11:43:00 Connection: opened
2020-05-01 11:43:03 SERVER -> CLIENT: 220 smtp.livemail.co.uk ESMTP Postfix
2020-05-01 11:43:03 CLIENT -> SERVER: EHLO (domain)
2020-05-01 11:43:03 SERVER -> CLIENT: 250-smtp.livemail.co.uk250-PIPELINING250-SIZE 153600000250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN
2020-05-01 11:43:03 CLIENT -> SERVER: STARTTLS
2020-05-01 11:43:03 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2020-05-01 11:43:03 CLIENT -> SERVER: EHLO (domain)
2020-05-01 11:43:03 SERVER -> CLIENT: 250-smtp.livemail.co.uk250-PIPELINING250-SIZE 153600000250-VRFY250-ETRN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN
SMTP Error: Could not authenticate.
2020-05-01 11:43:03 CLIENT -> SERVER: QUIT
2020-05-01 11:43:03 SERVER -> CLIENT: 221 2.0.0 Bye
2020-05-01 11:43:03 Connection: closed
解决方案
推荐阅读
- javascript - 选中Vue中一个复选框上的所有复选框
- google-apps-script - Google 表格 - Json 到表格
- java - 如何在 java:invoke in mule 4 之后将 java 对象转换为 JSON
- python - conv2d 层有多少个参数
- xamarin - 我如何在 xamarin 的一页中设置两个列表视图
- arrays - 从反应状态数组中删除项目
- python - 如何从熊猫中的给定数据框列中获取唯一对
- python - 如何通过文件处理从给定的数据框列中获取唯一对?
- php - 通过 AJAX 发送时数据丢失
- google-cloud-platform - 获取 get-credentials 需要 gcp 上的编辑权限错误