Система.Сеть.Почта.SmtpException: служба недоступна, закрытие канала передачи. Ответ сервера: 4.4.2

Я получаю эту ошибку, когда я часто отправляю сообщения по электронной почте список пользователей. Скажем, он отправляет 10 писем, а 1 дает ошибку, затем отправляет еще пару писем и дает ту же ошибку.

код выглядит так:

public static bool SendEmail(string toMail, string fromname, string from, string subject, string body, string BCC)
    {

        MailMessage mailmessage = new MailMessage("frommail@mail.com", toMail, subject, body);
        mailmessage.IsBodyHtml = true;
        mailmessage.BodyEncoding = Encoding.GetEncoding(1254);
        mailmessage.SubjectEncoding = Encoding.GetEncoding(1254);

        SmtpClient objCompose = new SmtpClient("xxxx");

        try
        {
            objCompose.Send(mailmessage); 

            return true;
        }
        catch (Exception ex) { 

        }

        return false;
    }

и ошибки я получаю это:

Система.Сеть.Почта.SmtpException: служба недоступна, закрытие канала передачи. Ответ сервера: 4.4.2 mailer.mailer.com ошибка: превышен тайм-аут на Системы.Чистая.Почте.Если создать.CheckResponse(SmtpStatusCode состояния, строку ответа ) в системе.Сеть.Почта.MailCommand.Отправить (SmtpConnection conn, Byte [] команда, строка из) в системе.Сеть.Почта.SmtpTransport.SendMail (отправитель MailAddress, получатели MailAddressCollection, строка deliveryNotify, SmtpFailedRecipientException & исключение) в системе.Сеть.Почта.SmtpClient.Отправить (сообщение MailMessage)

может кто-нибудь, пожалуйста, помогите, эта ошибка убивает меня.

спасибо заранее.

2 ответов


удаление smtpclient (objCompose) сделало трюк.

    // Summary:
    //     Sends a QUIT message to the SMTP server, gracefully ends the TCP connection,
    //     and releases all resources used by the current instance of the System.Net.Mail.SmtpClient
    //     class.
    public void Dispose();

Мне нравится обертывать его в блок using. Это заставит распоряжаться и это очень элегантно.

using(SmtpClient objCompose = new SmtpClient("xxxx"))
{
    objCompose.Send(mailmessage); 
}