在ASP.NET C中捕获退回的电子邮件#

时间:2010-03-31 08:32:58

标签: asp.net email

我正在使用C#asp.net发送电子邮件。 如果从(message.From)发送的电子邮件地址可以是任何地址,则如果电子邮件从服务器退回,则应用程序请求仍有可能报告。

5 个答案:

答案 0 :(得分:1)

这里需要一个不时弹出的程序,并检查您发送的电子邮件是否有任何回复。

在谷歌搜索 asp.net pop3 ,找到想到的想法和模块。

我已经测试了很多他们自己,对我来说最好的一个是http://www.aspnetpop3.com/可以阅读和你说的 - 但不是免费的。

最后评论,您要求做的任务很难,并且只能使用一个功能无法解决,而您无需数据库记录您发送的内容以及已退回的内容

答案 1 :(得分:1)

退回的电子邮件可能需要几秒钟,几分钟,几小时或几天,具体取决于服务器弹回电子邮件(即您要向其发送电子邮件的服务器)。此外,电子邮件使用SMTP客户端发送并在POP上接收,并且由于需要收到退回的电子邮件以记录退回,因此在发送电子邮件时无法获得退回错误。

您需要使用smtp客户端向您发送的邮件添加回复地址。

message.ReplyToList.Add("<reply-to-address-for-detecting bouncing back emails>");

然后你需要监控回复地址。现在要使用C#监视它,您需要使用服务或定期检查安排创建与reploy-to地址相关联的POPClient()。 Here是StackOverflow链接,显示如何检测收到的电子邮件。

如果适用于您的组织,您甚至可以将IT支持地址作为回复地址,这样当电子邮件被退回时,您会收到通知(仅在非频繁发布时)

答案 2 :(得分:0)

答案 3 :(得分:0)

对于将电子邮件发送回发件人说出错误的退回,您需要在此主题中使用Aristos概述的技术。

您可以通过捕获SmtpException来检查发送时的错误:

没有万无一失的方法可以做到这一点,因为许多电子邮件服务器只会丢弃电子邮件而不是回复。这是为了防止垃圾邮件发送者检测电子邮件收件箱是否是真实帐户。

答案 4 :(得分:0)

如果您可以访问smtp的文件夹结构,则可以解析inetpub / mailroot / badmail文件夹中的文件。这些文件将以纯文本形式显示未送达的地址和原因。