Я пытаюсь отправить много писем с использованием метода SmtpClient.SendMailAsync .Вот мой тестовый метод, который я вызываю из простого консольного приложения.
static void Main(string[] args)
{
SendMailsOnebyOneAsync().GetAwaiter().GetResult();
}
public static async Task SendMailsOnebyOneAsync()
{
for (int i = 0; i < 1000; i++)
{
try
{
using (SmtpClient sMail = new SmtpClient("XXX"))
{
sMail.DeliveryMethod = SmtpDeliveryMethod.Network;
sMail.UseDefaultCredentials = false;
sMail.Credentials = null;
var fromMailAddress = new MailAddress("XXX");
var toMailAddress = new MailAddress("XXX");
MailMessage message = new MailMessage(fromMailAddress, toMailAddress)
{
Subject = "test"
};
await sMail.SendMailAsync(message);
Console.WriteLine("Sent {0}", i);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Иногда метод зависает - он ожидает SendMailAsync , который кажется зависшим и не возвращает.
Я вижу один связанный вопрос SmtpClient SendMailAsync иногда никогда не возвращает .Но нет никаких исправлений, предлагаемых для меня.
Когда я пытался использовать синхронный метод SmtpClient.Send все в порядке, и приложение никогда не зависает.
Кто-нибудь делаетесть идеи что не так?