Не отправляется письмо SmtpClient (await/async/wait())

Друзья привет, есть 2 метода. Верхний отвечает за отправку сообщения, второй за формирование сообщения. В данном виде они не работают, при этом в логи не падает ошибка, а падает сообщение, что письмо ушло, на сервер смтп при этом ничего не приходило.

Нашел как заставить это работать. Надо либо в первом методе await client.SendMailAsync(message); заменить на client.SendMailAsync(message).Wait(); либо во втором методе заменить await SendMailAsync(message, login, password); на SendMailAsync(message, login, password).Wait();

public static async Task SendMailAsync(MailMessage message, string login = null, string password = null, int timeout = 10000)
    {
        using (var client = new SmtpClient())
        {
            if (login != null && password != null)
                client.Credentials = new NetworkCredential(login, password);
            client.Timeout = timeout;
            await client.SendMailAsync(message);
        }
    }

Метод второй

public static async void SendMail(string from, string to, string subject, string body = "", string login = null, string password = null, bool isHtml = true)
    {
        if (!Parameters.MainSettings.ServiceEmail)
            return;

        try
        {
            var message = new MailMessage(from, to, subject, body) { IsBodyHtml = isHtml };
            await SendMailAsync(message, login, password);
        }
        catch (Exception e)
        {
            Logger.Error(e.Message);
        }
    }

Т.Е вроде проблема решена, но мне хотелось бы узнать почему так происходит, вроде должны в этом коде работать одинаково await и Wait(); Вроде прочитал разницу между асинхронными операциями и тасками, но решение моего вопроса мне это не подсказало.


Ответы (1 шт):

Автор решения: Петян

Разобрался. Сразу после отправки консольное приложение закрывалось. Т.К мы не ждали что все письма уйдут, приложение закрывалось до того, как уходили все письма. Добавил после отправки каждого сообщения Thread.Sleep() и все сообщения доставляются. Всем спасибо

→ Ссылка