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

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

问题描述:

我目前正在循环访问数据库并调用System.Net.Mail.SmtpClient的Send()方法。问题在于速度很慢。每封电子邮件大约需要5-10秒才能发送(这可能只是我的主机的一个问题)。我不得不重写exe​​cutionTimeout默认在我的web.config文件(默认为90秒),这样的:在ASP.NET中发送大批量电子邮件的最佳方式是什么?

<httpRuntime executionTimeout="3000" /> 

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

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

本文应该帮助您入门:Sending Emails Asynchronously in C#

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

和关闭当然也有一些商业客户提供,但我已经尝试过,可以推荐的唯一一个是http://www.aspnetemail.com/

绝对产卵它关闭在后台工作进程,所以他们异步外出。

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