2013-01-17 38 views
0

有條件地使用$this->email->send()$this->email->print_debugger()是否有可能發生傳送錯誤?像這樣...使用Codeigniter的郵件庫檢測郵件傳送錯誤

if (!$this->email->send()){ 
    // Error 
    $this->email->print_debugger() 
}else{ 
    // Success 
} 

在我的情況下,如果收款人是假的電子郵件地址的功能send()總是返回true。郵件協議設置爲標準的PHP郵件功能,我需要將配置協議設置爲smtp嗎?

或者我問一些必須使用單獨的過程來完成的事情(比如管道反彈消息到服務器目錄並稍後解析它)?

+1

你的第二點是正確的,你無法檢測到發送的虛假地址,你需要等到它反彈 – 2013-01-17 19:17:20

回答

1

CI電子郵件庫不知道收件人是否合法。其他圖書館也不會。

只有在郵件試圖發送郵件的時候,您才能知道郵件的確定性。

您的系統郵件日誌可以告訴某些人,反彈可能會告訴其他人,但即使郵件被髮送並且不會被反彈,您也永遠不會知道。你可能會發送垃圾郵件,第三方或其他東西。

如果您正在進行重複發送,您應該強制收件人驗證其郵件地址。

+0

Thanx的解釋說明Repox!客戶不想驗證收件人的「營銷決策」。所以作爲一個起點,我會嘗試擴展lib並從日誌和反彈中獲取錯誤,至少要禁用登錄錯誤的訂閱者。 – Luciano