我正在循环遍历datareader并调用System.Net.Mail.SmtpClient的Send()方法.这个问题是它很慢.每封电子邮件大约需要5-10秒才能发送(这可能只是我主机的一个问题).我必须覆盖web.config文件中的executionTimeout默认值(默认为90秒),如下所示:
一个警告:我在共享主机上,所以我不认为我可以使用PickupDirectoryFromIis选项发送(至少,当我打开它时它给了我错误).
您可以异步发送邮件.这样超时不应该中断你的发送.
本文应该可以帮助您开始:在C#中异步发送电子邮件.
这里有另一种方法:http://www.vikramlakhotia.com/Sending_Email_asynchronously_in_AspNet_20.aspx
当然,有几个商业客户可用,但我尝试过并且可以推荐的唯一一个是http://www.aspnetemail.com/