我刚刚编写了一些测试代码,查看 System.Net.Mail.SmtpClient 向自己发送相同的消息。
int numClients = 10;
List<SmtpClient> mailClients = new List<SmtpClient>();
for (int i = 0; i < numClients; i++) {
mailClients.Add(new SmtpClient(smtpHost));
}
MailMessage msg = new MailMessage("myAddress@eg.com", "myAddress@eg.com", "test message", "" );
foreach (SmtpClient c in mailClients) {
c.SendAsync(msg, null);
}
这一切都很好并且执行没有任何问题,除了我只收到'n - 1'消息。即,如果我发送 10 条消息,我的收件箱中只会收到 9 条消息。如果我发送 50 我只会收到 49 等等。
注意:如果我更改代码以使用阻止发送,那么我将始终收到正确数量的消息。例如
foreach (SmtpClient c in mailClients) {
c.Send(msg);
}
有任何想法吗?