在ASP.NET中发送大量电子邮件的最佳方法是什么?

时间:2020-03-05 18:51:37  来源:igfitidea点击:

我目前正在遍历数据读取器,并调用System.Net.Mail.SmtpClient的Send()方法。问题是它很慢。每封电子邮件大约需要5到10秒才能发送出去(这很可能与我的主机有关)。我必须在我的web.config文件中覆盖默认的executeTimeout(它默认为90秒),如下所示:

<httpRuntime executionTimeout="3000" />

一个警告:我在共享主机上,所以我认为我不可能使用PickupDirectoryFromIis选项发送(至少,打开时它给了我错误)。

解决方案

回答

我们可以异步发送邮件。这样,超时不会中断发送。

本文应该可以入门:在C#中异步发送电子邮件。

这里还有另一种方法:http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx

当然,有几个商业客户可用,但是我尝试过并可以推荐的唯一一个客户是http://www.aspnetemail.com/

回答

绝对在后台工作进程上生成它,以便它们异步退出。

顺便说一句,每封电子邮件5-10秒对我来说似乎太慢了。在我的服务器上,每封电子邮件只需几分之一秒。