邮件服务器重启后 PHPMailer 不起作用

时间:2021-05-09 10:35:04

标签: php apache ubuntu phpmailer exchange-server

我在我们网段搭建了一个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,它可以工作,但速度很慢。我仍然想使用我自己的邮件服务器。有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:0)

刚刚修复了以下代码:

$mail->SMTPSecure = 'ntlm';
$mail->Realm = "MailServerDomain";
$mail->Workstation = "WORKSTATION1";