为什么SmtpClient.SendAsync只能调用一次?

2023-12-29

我正在尝试使用 SmtpClient 在 .NET 中编写通知服务(出于完全合法的非垃圾邮件目的)。最初我只是循环遍历每条消息并发送它,但是这很慢,我想提高速度。因此,我改用“SendAsync”,但现在在第二次调用时出现以下错误:

An asynchronous call is already in progress. 

我的理解是 MS 削弱了 System.Net.Mail 以防止邮件群发。它是否正确?如果是这样,是否有更好的方法在 .NET 中执行此操作,并且仍然能够记录每封电子邮件的结果(这对我们的客户很重要)。如果不是,为什么SendAsync只能调用一次?


根据文档 http://msdn.microsoft.com/en-us/library/x5x13z6h.aspx:

调用SendAsync后,必须等待 用于将电子邮件传输至 在尝试发送之前完成 使用发送或发送另一封电子邮件 SendAsync。

因此,要同时发送多封邮件,您需要多个 SmtpClient 实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么SmtpClient.SendAsync只能调用一次? 的相关文章

随机推荐