2012-02-04 54 views
1

如果您正在構建一個web羣發郵件軟件,管理電子郵件反彈/錯誤的最佳方法是什麼?我打算爲此使用PHP。如何在PHP中管理電子郵件彈跳和錯誤?

在有人開始尖叫前,是的,這些清單將來自有選擇加入的有效客戶。

我知道有桌面軟件或第三方網站可以管理這樣的事情。我想用類似於當前CMS的視覺效果的設計來展示它,並且可以在那裏訪問。

如果唯一的解決方案是連接到郵件服務器並讀取彈回信息,那麼我會以這種方式。那麼,你將如何解析數據來標記該電子郵件爲「無效」?

謝謝你,你可以從具有PHP腳本做一邊

+0

「最佳管理方式」是什麼意思?管理什麼? – 2012-02-04 00:46:02

+0

@Paul,彈出電子郵件?由於目的地不再存在或無法訪問而導致服務器退回到服務器的電子郵件 – Cybrix 2012-02-04 01:13:07

+0

即使離開辦公室也可能被視爲反彈,但這些將被忽略。 – Cybrix 2012-02-04 01:15:28

回答

1

一個可能的事情讀郵件從POP/IMAP服務器將管道傳入郵件的某個地址的PHP腳本。 See Google

你可以這樣做類似$email = file_get_contents('php://stdin');我已經安裝了PHP擴展mailparse協助解析RFC電子郵件閱讀郵件的全部內容,但也有其他的選擇。你甚至不一定必須使用任何東西來解析消息。

一旦你有消息,有一些指標可以用來試圖將消息標記爲bounch。首先,請參閱維基百科關於Non Delivery Reports的文章,特別是FormatRFC 6522 - The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages。您還可以檢查消息中的常見標題,例如X-Failed-RecipientsDiagnostic-Code

一旦您確定郵件爲PHP郵件處理器中的反彈,您可以採取適當的措施並在與該郵件相關的數據庫中設置一個標誌。請注意,有些錯誤可能並不意味着地址不好。例如,如果郵件服務器停機幾天,您的MTA可能會放棄,但這並不意味着地址不好。用戶的郵箱也可能已滿。

它不會是一個壞主意來記錄退回郵件的副本,以便它可以由一個人來檢查,如果需要診斷問題或扭轉疲弱的或特定的電子郵件地址。

這裏有一些額外的引用:

http://forums.theplanet.com/lofiversion/index.php/t89873.html(注意改進的可能性2)
https://stackoverflow.com/questions/5700034/how-do-i-process-a-bounce-email-to-find-the-error-code
Bounce Email handling with PHP?

希望有所幫助。