我正在嘗試在.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