首页 > 解决方案 > 实时服务器上的 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;
}

我检查过的内容:

我尝试通过我的 Gmail 帐户在我的 IIS 服务器上发送电子邮件,并启用允许不太安全的应用程序,并成功。

据我所知,问题不在于:

我已经没有想法了,非常感谢您对此提供任何帮助。谢谢!

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

标签: phpiisphpmailer

解决方案


推荐阅读