У меня есть консольное приложение, которое отправляет письма в поток.Как отправить электронную почту внутри в цикле с SMTP?
в этом методе потока У меня есть цикл, который отправляет электронные письма каждому получателю.
У меня возникли проблемы, когда я пытаюсь отправить несколько писем, прежде чем предыдущие получили возможность получить отправленные сообщения.
мой код:
foreach(var m in mailModel.Recipients)
{
Mailmanager.SendMessageS(mailModel.DomainName, mailModel.Severity, DateTime.Now, m);
}
И метод отправки:
public static async Task SendMessageS(string domainName, ErrorSeverity severity, DateTime errorTime, Recipient recipient)
{
try
{
string error = "";
string fromEmail = "[email protected]";
string toEmail = recipient.SendEmailTo;
MailMessage message = new MailMessage(fromEmail, toEmail);
Guid guid = Guid.NewGuid();
SmtpClient smtpClient = new SmtpClient(server, port);
/*if (_useAuthentication)*/
smtpClient.Credentials = new NetworkCredential("", "");
smtpClient.EnableSsl = false;
//mail.Subject = subject;
//mail.Body = body;
message.Subject = "Problem (" + severity + ") " + domainName;
message.Body = BuildMessage(error, recipient.RecipientName, domainName, errorTime, severity);
smtpClient.SendCompleted += SendCompletedCallback;
await smtpClient.SendMailAsync(fromEmail, toEmail, message.Subject, message.Body /* user state, can be any object*/);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Я получаю эту warrning:
потому, что этот призыв не ожидал выполнение текущего метода продолжается до завершения вызова. Рассмотрим применение opeartor ждут в результате вызова
Я понимаю warrning, но я не могу понять, как я могу сделать это, так как у меня есть цикл, который проходит через все мои реципиентов.
Как я могу сделать это правильно?