2016-09-02 32 views

回答

2

我不認爲這與yii2或afterSave()事件有關(只要afterSave事件被觸發,例如您可以通過Runtime Logging進行驗證)。當使用PHPMailer課程時,您可以看到this關於確保發送電子郵件的討論。

$ mail-> send()不會總是返回true。如果與作品有關的發送過程的部分返回true。所以,如果你發送到一個未知的地址,但通過gmail做到這一點,gmail的服務器不知道該地址是否存在,所以它會被接受和稍後反彈。如果您在通過Gmail發送郵件時發送到Gmail地址,則會立即失敗。

如果一個帳戶根本不存在,大多數服務器(包括gmail)仍然會給出5.1.1「未知用戶」響應,如果您通過SMTP直接發送給接收方,則PHPMailer會正確報告該響應郵件服務器(但是,如果您通過中間服務器(如Gmail)或使用郵件()發送郵件)。 PHPMailer沒有內置的支持,但是你自己做的只是調用getmxrr並手動設置主機。如果您以這種方式發送,您也不需要使用身份驗證。

您可以做各種事情,如檢查域是否存在 - 如果不存在,郵件傳遞將無法工作。某些服務器將接受所有地址並在稍後發送退回(例如,如果他們的垃圾郵件過濾器具有較長的處理隊列),但如果您預先遭到拒絕,則可以確定該地址不存在。

您還需要考慮反彈處理,這將允許您刪除看起來不錯但後來證明不成的地址,這與PHPMailer所做的任何事情完全不同。我現在會提醒你 - 反彈處理是非常不愉快的!

你也應該在端口587上使用tls而不是在465上使用ssl;請參閱PHPMailer提供的gmail示例。

我也建議你通過SMTP認證連接通過PHPMailer發送郵件。

+0

我會建議您使用交易電子郵件服務的情況下,你已概述。您感興趣的信息以及統計信息和Web掛鉤使這種用戶管理變得更加輕鬆。 –

相關問題