2013-07-17 33 views
1

我正在構建一個SMTP電子郵件框架,該框架將具有用於發送電子郵件(使用PHP的PEAR郵件)的默認用戶名和密碼,但我希望具有提供的功能用於發送電子郵件的備用電子郵件帳戶憑據。如何檢查PEAR郵件SMTP身份驗證失敗

因此,爲了調試,我需要能夠確定爲什麼無法發送電子郵件。有誰知道一個容易確定的失敗是由於身份驗證問題?

我運行了一個無效密碼的測試用例。顯然,以檢查錯誤:

if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<p>Message successfully sent!</p>"); 
} 

隨着錯誤消息是:

authentication failure [SMTP: Invalid response code received from server (code: 535, response: 5.7.3 Authentication unsuccessful)] 

所以,我可以簡單地解析這個字符串,並確定它是一個「身份驗證失敗」,但只有當我毫無疑問,這將始終是認證失敗時的迴應。我對每個人的問題是,如果出現身份驗證失敗,或者是否有人知道在嘗試發送電子郵件之前或之後驗證登錄憑證的更簡單的解決方案,我是否可以期待該消息始終得到返回?

+2

'if($ mail-> getCode()== 535){failed! }' –

+1

這段代碼清單與Marc的評論很吻合:http://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml –

+0

不錯,有沒有什麼地方可以看看所有的響應代碼...在網上查了一下,但我找不到完整的解決方案。 –

回答