2012-11-27 25 views
5

我的郵件發送代碼: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 = "[email protected]"; 
     $mail->Password = "mypassword"; 

     $mail->From = "[email protected]"; 
     $mail->FromName = "My Mail Address"; 
     $mail->SetFrom("[email protected]", "My Mail Address"); 

     $mail->AddAddress('[email protected]'); 

     $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郵件服務器。但是我有這個錯誤。

爲什麼?

謝謝!

+0

您是否驗證了以下內容:1.您的用戶名和密碼是否正確; 2.是否通過郵件客戶端等其他方式工作; 3.您的服務器是否允許訪問Exchange服務器以進行外向交付? – Sammitch

+0

根據錯誤,這可能不是問題,但它的價值檢查。確認您嘗試連接的用戶在Exchange服務器上啓用了SMTP訪問。 Exchange可能會或可能不會使用某些類型的加密進行身份驗證,因此可能需要使用特殊的標誌進行連接。例如,通過IMAP連接到Exchange服務器時,在連接中需要'/ novalidate-cert'和'/ tls'並不罕見。雖然我不確定你會如何去做與PHPMailer。 – Chad

回答

1

您可能正在使用管理員憑據。不知道爲什麼,但即使我無法使用帶管理員憑證的PHPMailer發送郵件(可能有一些安全措施適用於管理員詳細信息)。嘗試給予任何其他用戶憑據,它將工作。 它適用於我的其他用戶憑證。

,並在你的代碼

$mail->From = "[email protected]"; 
    $mail->FromName = "My Mail Address"; 
    $mail->SetFrom("[email protected]", "My Mail Address"); 

$ MAIL-> SetFrom( 「mailid」, 「姓名」)本身將設置從& FROMNAME值。你不需要重新設置。