System.Net.Mail.SmtpException: служба недоступна, закрытие канала передачи.Ответ сервера был: 4.4.2 - PullRequest
7 голосов
/ 14 февраля 2012

Я получаю эту ошибку, когда часто отправляю электронное письмо списку пользователей.Скажем, он отправляет 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;
    }

И я получаю следующую ошибку:

System.Net.Mail.SmtpException: служба недоступна,закрытие канала передачи.Ответ сервера: 4.4.2 mailer.mailer.com Ошибка: превышено время ожидания в System.Net.Mail.MailCommand.CheckResponse (SmtpStatusCode statusCode, String response) в System.Net.Mail.MailCommand.Send (SmtpConnection conn, Byte [], строка из) в System.Net.Mail.SmtpTransport.SendMail (отправитель MailAddress, получатели MailAddressCollection, String deliveryNotify, SmtpFailedRecipientException & exception) в System.Net.Mail.SmtpClient.Send (сообщение MailMessage) * * *

1010 *1010* 1010

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

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

Ответы [ 2 ]

10 голосов
/ 15 февраля 2012

Утилизация 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();
4 голосов
/ 15 февраля 2013

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

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