我在我们的网段中构建了一个Ubuntu服务器,并希望它使用PHPMailer发送邮件。邮件服务器和Web服务器在同一个段(均在192.168.37.XX中(。
上周我的邮件服务器过载,我重新启动了它。在那之后,Web服务器中的PHPMailer就不起作用了(我在邮件服务器或Web服务器中没有更改任何内容,邮件服务器是Exchange邮件服务器,我只是重新启动它,没有任何更改(。
我尝试了使用本地主机(127.0.0.1(,PHPMailer运行良好,调试日志显示AUTH类型为";登录";。但在Web服务器中,调试日志显示AUTH类型为"0";NTLM";并显示以下错误。Localhost和Webserver中的代码都是相同的。我试着用另一台内置在其他网段中的Web服务器,它也能工作。
调试错误:"AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUKING 250-XEXCH50 250 XRDST 2021-05-09 09:27:31客户端->服务器:AUTH NTLM TlmTVNTUAAABAAAABzIAAAAAAAAgAAAAAAAAACAAAAA=2021-05-09 09:27:36服务器->客户端:535 5.7.3身份验证不成功2021-05-09 09:27:36 SMTP错误:AUTH NTLM命令失败:535 5.73身份验证失败";,
require_once('class.phpmailer.php');
require_once('class.smtp.php');
$mail = new PHPMailer(true);
$mail->IsSMTP(); // enable SMTP
$mail->SMTPAuth = true; // authentication enabled
$mail->IsHTML(true);
$mail->SMTPDebug = 2;
$mail->Host = "mail.mailserver.com";
$mail->SMTPSecure ='starttls';
$mail->Port = 587;
$mail->Username = $username;
$mail->Password = $password;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->SetFrom("username@mailserver.com", "XXXX");
$mail->Subject = "Subject";
$mail->Body = "OKOK";
$mail->AddAddress("XX@gmail.com");
$mail->Send();
现在我正在使用gmailsmtp,它很有效,但速度很慢。我仍然想使用我自己的邮件服务器。有人能帮忙吗?谢谢
只修复了以下代码:
$mail->SMTPSecure = 'ntlm';
$mail->Realm = "MailServerDomain";
$mail->Workstation = "WORKSTATION1";