我正在尝试在.NET中使用SmtpClient编写通知服务(用于完全合法的非垃圾邮件目的)。最初,我只是通过每封邮件循环发送,但这很慢,我想提高速度。所以,我切换到使用“SendAsync”,但现在收到以下错误的第二个电话:为什么只能调用SmtpClient.SendAsync一次?
An asynchronous call is already in progress.
我读这意味着MS瘫痪System.Net.Mail防止群发邮件。它是否正确?如果是这样,有没有更好的方式在.NET中做到这一点,并仍然能够记录每封电子邮件的结果(这对我们的客户来说很重要)。如果不是,为什么SendAsync只能被调用一次?
是否有人已经实现了这种机制一次发送多个电子邮件?在smtp客户端类的顶部?听起来像是很多人遇到的问题......有点奇怪,没有人为它创建过一些框架。 – 2011-10-26 15:54:21
@ItayLevin我没有看到需要尝试重用SmtpClient实例。 Darin熟练地解释了这一点,为什么不只是为每个电子邮件发送尝试分配每个实例。 – Roman 2012-04-23 17:54:53
这是关于该主题的[良好帖子](http://www.codefrenzy.net/2012/01/30/how-asynchronous-is-smtpclient-sendasync/)。 – 2016-12-12 16:31:31