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

What is the best way to send large batches of emails in ASP.NET?

提问人:ine 提问时间:9/11/2008 更新时间:9/12/2008 访问量:2906

问:

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

 <httpRuntime executionTimeout="3000" />

需要注意的是:我在共享主机上,所以我认为我无法使用 PickupDirectoryFromIis 选项发送(至少,当我打开它时它给了我错误)。

asp.net 电子邮件 批处理文件

评论


答:

6赞 Espo 9/12/2008 #1

您可以异步发送邮件。这样,超时就不会中断您的发送。

本文应帮助您入门:在 C# 中异步发送电子邮件

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

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

0赞 Ryan Farley 9/12/2008 #2

一定要在后台工作进程上生成它,以便它们异步输出。

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