phpmailer交换服务器认证

时间:2012-11-27 15:53:09

标签: php phpmailer exchange-server

我的邮件发送代码:

    $mail = new PHPMailer(true);
    $mail->IsSMTP();

    try {
        $mail->Host = 192.168.205.19;
        $mail->Port = 25;
        $mail->SMTPDebug  = 2;
        $mail->SMTPSecure = "tls";
        $mail->SMTPAuth = true;
        $mail->Username = "mymailadress@mysite.com";
        $mail->Password = "mypassword";

        $mail->From = "mymailaddress@mysite.com";
        $mail->FromName = "My Mail Address";
        $mail->SetFrom("mymailaddress@mysite.cm", "My Mail Address");

        $mail->AddAddress('toaddress@mysite.com');

        $mail->Subject = "Test for subject";
        $mail->MsgHTML("Test my mail body");

        if ($mail->Send()) {
            $result = 1;
        } else {
            $result = "Error: " . $mail->ErrorInfo;
        }
    } catch (phpmailerException $e) {
        $result = $e->errorMessage();
    } catch (Exception $e) {
        $result = $e->getMessage();
    }

    return $result;

结果

SMTP -> FROM SERVER:220 evo.callpex.int Microsoft ESMTP MAIL Service ready at Tue, 27 Nov 2012 17:45:24 +0200 
SMTP -> ERROR: Password not accepted from server: 535 5.7.3 Authentication unsuccessful 

我正在使用PHPMailer类发送邮件。和SMTP。我正在连接到Exchange邮件服务器。但我有这个错误。

为什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可能正在使用管理员凭据。不知道为什么,但即使我无法使用具有管理员凭据的PHPMailer发送邮件(可能有一些适用于管理员详细信息的安全措施)。尝试提供任何其他用户凭据,它将工作。 它适用于我的其他用户凭据。

并且,在您的代码中

  $mail->From = "mymailaddress@mysite.com";
  $mail->FromName = "My Mail Address";
  $mail->SetFrom("mymailaddress@mysite.cm", "My Mail Address");

$ mail-> SetFrom(“mailid”,“name”)本身将设置From& FromName值。你不需要再设置它。

答案 1 :(得分:0)

我不知道它是否已排序,但是交换服务器通常不支持SMTP。我相信可以启用SMTP或创建SMTP连接器。

答案 2 :(得分:0)

我认为你的变量 $mail->Host 应该是一个像 $mail->Host = '192.168.205.19'; 这样的字符串,而不是没有引号。