2009-07-16 50 views
5

mail()失敗時,沒有太多有關出錯的信息。我明白最好的行動方式是檢查你的sendmail日誌,或者PHP使用的任何郵件程序。但是從一個編程和務實的角度來看:在Linux託管環境中,PHP程序可以做些什麼來獲得儘可能多的額外信息來正確記錄失敗,可能的原因等,併產生可用的,可操作的錯誤?如何從PHP的mail()失敗中獲得額外的錯誤信息?

+0

我從來沒有能夠成功檢索錯誤信息。我發現緩解這種情況的唯一方法是通過我的php應用程序中的排隊系統,在那裏隊列將繼續嘗試發送電子郵件。 – Josiah 2009-07-16 00:34:58

回答

0

肯定會有比這更好的答案,但我也有興趣聽到它。也許一種解決方案是編寫你自己的mail()函數版本。它不太難。如果你真的需要完整/詳細的信息,說明爲什麼發送信息失敗了,那麼它可能不是一個壞主意。它肯定會給你更多的控制。

+0

在共享託管環境中,我懷疑我能夠加載外部PHP模塊。但主要問題是,我真的,真的有更重要的問題來解決第一:) – 2009-07-16 00:36:11

2

問題是,在一個類似Unix的系統上,PHP只是把整個事情交給一個命令行工具,它實際上只是讓PHP能夠說'yay'或'nay'。要做你想做的事,你需要使用類似PEAR's Net_SMTP的東西,它實際上可以與郵件服務器進行智能通信。