Почему SmtpClient ведет себя иначе в XP / Vista / Win7 - PullRequest
1 голос
/ 27 января 2010

Я использую следующий код, который отлично работает каждый раз в Vista / Win7.

private void SendEmail(string subject, string body, string attach)
{
    using (MailMessage message = new MailMessage("username@gmail.com", "username@gmail.com", subject, body))
    {
        message.IsBodyHtml = true;

        if (!string.IsNullOrEmpty(attach))
        {
            Attachment attached = new Attachment(attach);
            message.Attachments.Add(attached);
        }

        SmtpClient client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("username@gmail.com", "password"),
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network
        };

        client.Send(message);
    }
}

Однако в Windows XP я получаю:

No connection could be made because the target machine actively refuses it

Я проверил, и брандмауэр Windows полностью отключен ...

Ответы [ 4 ]

2 голосов
/ 27 января 2010

Попробуйте с Windows-машины следующее:

  1. клавиша windows + r
  2. Тип cmd
  3. Тип telnet smtp.gmail.com 587

Если в сообщении указано, что соединение отклонено или аналогично, значит это проблема с брандмауэром или сетью, не связанная с кодом.

1 голос
/ 27 января 2010

Трудно сказать, если это так, но однажды у нас была эта проблема, и виновником была антивирусная утилита.

0 голосов
/ 27 января 2010

Я сомневаюсь, что это как-то связано с ОС, этот тип исключения обычно всплывает из внутренних. Перехватите исключение и посмотрите на внутренние исключения и посмотрите, в чем заключается настоящая проблема.

Однако проблема такого рода обычно заключается в блокировке брандмауэра, удаленный SMTP-сервер блокирует входящие запросы или ваша машина блокирует исходящие запросы на порт 25.

0 голосов
/ 27 января 2010

Используете ли вы одну и ту же версию System.Net.Mail на всех трех системах?

Также может быть связано с блокировкой подключений брандмауэра Windows (или каким-либо другим брандмауэром).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...