通过ASP.NET网页发送大量电子邮件的最佳方法

通过ASP.NET网页发送大量电子邮件的最佳方法,.net,asp.net,email,massmail,threadabortexception,.net,Asp.net,Email,Massmail,Threadabortexception,我已经编写了一个联系人管理/通信系统,它记录了人们的详细信息,并允许发送大众通信 但是,有时在发送电子邮件时会引发以下异常: System.Threading.ThreadAbortException:正在中止线程 通过ASP.NET发送大量电子邮件的最佳方式是什么 我要寻找的是一种将所有内容都保存在ASP.NET中的方法 我觉得我可能需要将电子邮件存储在数据库中,并让一个单独的.net控制台应用程序/Windows服务将其发送出去。但是,由于额外的开发开销和时间的缺乏,这是我想考虑的最后一个选

我已经编写了一个联系人管理/通信系统,它记录了人们的详细信息,并允许发送大众通信

但是,有时在发送电子邮件时会引发以下异常:

System.Threading.ThreadAbortException:正在中止线程

通过ASP.NET发送大量电子邮件的最佳方式是什么

我要寻找的是一种将所有内容都保存在ASP.NET中的方法


我觉得我可能需要将电子邮件存储在数据库中,并让一个单独的.net控制台应用程序/Windows服务将其发送出去。但是,由于额外的开发开销和时间的缺乏,这是我想考虑的最后一个选项。

< P>查看Service Bug,然后从队列中拉取一个单独的应用程序来启动电子邮件。p> 不要。如果ASP.net请求超过超时时间,则IIS可以终止这些请求,IIS会关闭这些请求,等等


在这种情况下,当您想要发送电子邮件时,您希望生成一个可以执行此操作的外部进程,因为它可以运行多长时间。你可以编写一个小的可执行控制台应用程序,知道如何发送它们,并根据需要让你的网页运行。

如果没有中介,没有可靠的方法从.net进行大规模电子邮件广播

我的意思是,电子邮件必须在数据库或其他持久存储中排队。然后,您需要另一个应用程序控制台,即服务,负责监控队列和处理广播请求的任何应用程序

其次,不要直接从代码中发送它们。相反,将电子邮件发送到您控制的本地邮件服务器,以便重新广播给实际收件人。大量的垃圾邮件检测机制,如灰色列表,意味着你将花费大量的时间发送邮件,得到灰色列表拒绝,等待15分钟或更长的时间,然后再次发送,看它通过

即使您正在使用真正的邮件服务器,排队的原因也是为了避免本地邮件服务器过载


从.net发送邮件通常是一次性的,尤其是当所有收件人都在您的公司内时。然而,无论何时,只要你必须以任何可靠的方式将它们发送给公众,那么你就需要成长起来。

@Chris Lively我可以从你的个人资料中看出,你在这方面有丰富的经验。从ASP/VBScript时代起,我就开始使用另一个应用程序来发送电子邮件,但是使用这个客户端,获得类似这样的设置更为困难。然而,这似乎是唯一的解决办法。@Peter Bridger:是的,我们有自己的群发电子邮件解决方案,并花费了大量的时间和精力来尝试正确的方法。在一天结束时,您需要有一个正确配置的反向dns等本地邮件服务器来处理实际的电子邮件。在某种程度上,这是.net中的一个限制;然而,更大的问题是越过接收服务器的垃圾邮件块,通过普通邮件服务器解决其中一些问题。即使现在有这么多的白名单正在进行,你仍然可以结束在别人的垃圾邮件箱没有好的理由。