我目前正在遍历datareader并调用System.Net.Mail.SmtpClient的Send()方法。这样做的问题是它太慢了。每封电子邮件大约需要5-10秒才能发送(这可能只是我的主机出了点问题)。我必须覆盖web.config文件中的executionTimeout默认值(默认为90秒),如下所示:
<httpRuntime executionTimeout="3000" />一个警告:我在一个共享主机上,所以我不认为我可以使用PickupDirectoryFromIis选项发送(至少,当我打开它时,它给了我错误)。
发布于 2008-09-11 16:04:23
你可以异步发送邮件。这样,超时应该不会中断您的发送。
这篇文章应该会帮助您开始使用Sending Emails Asynchronously in C#。
这里还有另一种方法:http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx
当然,也有几个商业客户端可用,但我尝试过并推荐的唯一一个是http://www.aspnetemail.com/
发布于 2008-09-11 16:10:33
绝对可以在后台工作进程上生成它,这样它们就可以异步运行了。
顺便说一句,每封邮件5-10秒对我来说似乎太慢了。在我的服务器上,每封电子邮件只需要几秒钟的时间。
https://stackoverflow.com/questions/56975
复制相似问题