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

时间:2008-09-11 15:59:07

标签: asp.net email batch-file

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

 <httpRuntime executionTimeout="3000" />

有一点需要注意:我在共享主机上,所以我认为我不可能使用PickupDirectoryFromIis选项发送(至少,当我打开它时,它给了我错误。)

2 个答案:

答案 0 :(得分:6)

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

本文应该可以帮助您开始使用它:Sending Emails Asynchronously in C#

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

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

答案 1 :(得分:0)

肯定会在后台工作进程中生成它,以便它们异步出去。

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