回答
当然不是一个直接的答案,但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