我在我们网段搭建了一个Ubuntu Server,想让它用PHPMailer发送邮件。邮件服务器和网络服务器在同一个网段(都在 192.168.37.XX)。
上周我的邮件服务器过载,我重新启动了它。之后,Webserver 中的 PHPMailer 不起作用(我没有更改 Mailserver 或 Webserver 中的任何内容,Mailserver 是 Exchange Mailserver,我只是重新启动了它,没有任何变化)。
我尝试使用本地主机 (127.0.0.1) 并且 PHPMailer 运行良好,调试日志显示 AUTH 类型为“登录”。但在 Web 服务器中,调试日志显示 AUTH 类型为“NTLM”并显示以下错误。 Localhost 和 Webserver 中的代码都是一样的。我用我的另一个内置在其他网段的网络服务器尝试过,它也可以工作。
调试错误: “AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250-XEXCH50 250 XRDST 2021-05-09 09:27:31 客户端 -> NT 服务器:AAAABAG20ATVIA-AAAB0Z0ZAAAA-AAAB90zCAA 27:36 服务器 -> 客户端:535 5.7.3 身份验证失败 2021-05-09 09:27:36 SMTP 错误:AUTH NTLM 命令失败:535 5.7.3 身份验证失败”,
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();
现在我正在使用 gmail smtp,它可以工作,但速度很慢。我仍然想使用我自己的邮件服务器。有人可以帮忙吗?谢谢!
答案 0 :(得分:0)
刚刚修复了以下代码:
$mail->SMTPSecure = 'ntlm';
$mail->Realm = "MailServerDomain";
$mail->Workstation = "WORKSTATION1";