回答
當然不是一個直接的答案,但here是一個偉大的文章從編碼恐怖關於通過代碼發送電子郵件,它解決您的問題。
考慮到電子郵件是萬無一失的,這可能相當困難。除非你得到一個例外,由於證書錯誤等原因表示客戶端 - 服務器通信問題,否則你無法知道郵件是否成功發送(意思是:到達收件人)。
我個人從來沒有遇到過這個問題的答案,因爲沒有真正的方法可以讓您的郵件離開您的位置,一旦它離開您就不會被扔掉。你也許可以嘗試檢查發送郵箱的NDR(沒有發送報告),但你並不總是被授予獲得一個
簡單的答案是,如果它是一個可檢測的失敗,然後SmtpClient.Send
將拋出一個SmtpFailedRecipientsException(它會拋出一個如果存在連接問題,則爲SmtpException)。
長的答案是,由於許多原因,你不一定會得到一個例外。這可能是因爲您的SMTP服務器正在緩衝發送(或者將它設置爲本地iis或本地目錄),或者僅僅是因爲SMTP服務器不支持返回這些錯誤代碼。
大多數廣告郵件系統通過設置有效的「發件人地址」並監控該帳戶的收件箱來跟蹤反彈。但是,即使如此,也不是萬無一失的(例如,不在辦公室的消息)。
我會堅持捕捉異常並留下其他人。如果您不確定電子郵件是否有效,也許您應該向用戶發送驗證其電子郵件地址的代碼。
如果你的意思是發送成功,那麼其他海報說,如果它不能發送,那麼你會得到一個例外。如果你確實意味着成功接收,那麼這是一個完全不同的問題。 SMTP根本沒有一種機制來查明郵件是否已經被收件人收到,有時你會得到一個ndr,如果服務器不能提供你不會的其他時間。你可以嘗試做垃圾郵件發送者所做的事情,那就是在查詢字符串中用唯一標識符在你的html電子郵件正文中放置某種圖像鏈接。這將允許你鏈接到圖像網址的人與電子郵件。但是,這隻會告訴你,如果網址被擊中,電子郵件已被閱讀,它不會告訴你,該電子郵件沒有收到,因爲收件人可能根本沒有允許的圖像顯示在他們的電子郵件客戶端。
- 1. 如何知道電子郵件是否真的發送?
- 2. 如何檢查電子郵件是否已成功發送?
- 3. 如何檢查Siebel是否已成功發送電子郵件?
- 4. 我如何知道smtp服務器是否發送了我的電子郵件?
- 5. 如何使用System.Net.Mail發送電子郵件到多個地址
- 6. 有沒有辦法知道電子郵件是否用C#成功轉發?
- 7. 如何知道電子郵件是否使用PHP交付?
- 8. 確定是否可以成功發送電子郵件
- 9. 使用System.Net.Mail發送電子郵件與attchement
- 10. 發送電子郵件使用System.Net.Mail在C#
- 11. C#使用System.Net.Mail發送大量電子郵件
- 12. 通過Exchange Online(Office 365)使用System.Net.Mail發送SMTP電子郵件
- 13. ASP.NET MVC:發送電子郵件使用SendAsync(System.Net.Mail)
- 14. 如何使用Slim框架電子郵件功能發送電子郵件?
- 15. 我如何知道Rabbitmq是否成功?
- 16. 如何使用ActionMailer測試郵件是否成功發送?
- 17. 通過Google Apps使用System.Net.Mail發送電子郵件定時發送
- 18. laravel:如何知道成功發送的郵件數量?
- 19. swiftmailer:我怎麼知道發送電子郵件有問題?
- 20. 使用Laravel 5,我如何才能知道Mailgun郵件是否已成功發送?
- 21. 使用php郵件功能發送電子郵件。郵件成功發送,如果我從電子郵件中刪除圖像
- 22. ASP電子郵件System.Net.Mail
- 23. 如何知道用戶點擊了電話和電子郵件發送在Android
- 24. 如何使用雅虎管道發送電子郵件?
- 25. 成功發送電子郵件後發送給CSV
- 26. 如何知道電子郵件地址是否無效?
- 27. 如何在發送電子郵件後顯示成功消息?
- 28. 發送郵件與System.Net.Mail
- 29. system.net.mail不發送郵件
- 30. 軌道,如何知道何時發送一封電子郵件,在DEF CREATE