C# SMTP Существующее соединение было принудительно закрыто удаленным хостомC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# SMTP Существующее соединение было принудительно закрыто удаленным хостом

Сообщение Anonymous »

Мой код ведет себя очень странно, потому что я получаю эту ошибку, когда прикрепляю файлы и использую await client.SendMailAsync(msg), и это происходит только для некоторых небольших изображений. Другие изображения большего или меньшего размера работают нормально.

Код: Выделить всё

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)
Может кто-нибудь объяснить, почему client.Send(msg) работает, но await client.SendMailAsync(msg) не работает для некоторых вложений?
Перед этим кодом нет асинхронных задач, и вложения просто MemoryStream из Byte[] с CID.

Подробнее здесь: https://stackoverflow.com/questions/788 ... emote-host
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»