Код: Выделить всё
An existing connection was forcibly closed by the remote host.
Код: Выделить всё
public async Task SendEmail(EmailAccount emailAccount, string[] toemails, string subject, string message, IEnumerable attachments = null)
{
bool succeed = false;
try
{
using SmtpClient client = new();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Host = emailAccount.SMTPHost;
client.Port = emailAccount.SMTPPort.Value;
NetworkCredential credentials = new(emailAccount.UserName, emailAccount.UserPassword);
client.UseDefaultCredentials = false;
client.Credentials = credentials;
using MailMessage msg = new();
msg.From = new MailAddress(emailAccount.UserName);
foreach (string toemail in toemails)
msg.To.Add(new MailAddress(toemail));
msg.Subject = subject;
msg.IsBodyHtml = true;
msg.Body = message;
if (attachments != null)
{
foreach(var attachment in attachments)
{
msg.Attachments.Add(attachment);
}
}
await client.SendMailAsync(msg); // Does not work
//client.Send(msg); // Works
Logger.LogInformation($"Email is sent successfully.");
succeed = true;
}
catch (Exception ex)
{
Logger.LogCritical(ex, ex.Message);
}
return succeed;
//return Task.FromResult(succeed);
}
Может кто-нибудь объяснить, почему client.Send(msg) работает, но await client.SendMailAsync(msg) не работает для некоторых вложений?
Перед этим кодом нет асинхронных задач, и вложения просто MemoryStream из Byte[] с CID.
Подробнее здесь: https://stackoverflow.com/questions/788 ... emote-host