Проблема отправки почты с простым приложением .net. Ошибка отказа сервера - PullRequest
2 голосов
/ 15 апреля 2010

У меня очень простое приложение .net для тестирования SMTP на .net. Но я получаю эту странную ошибку. "System.Net.Mail.SmtpException: сбой при отправке почты. ---> System.Net.WebException: невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: не удалось установить соединение, поскольку цель машина активно от нее отказывалась "

SMTP-сервер удален и не требует никакой аутентификации, поэтому мне не нужны учетные данные. Но я могу отправлять почту с этого компьютера с помощью Outlook, используя тот же SMTP-сервер и те же настройки SMTP без каких-либо проблем.

Есть идеи? Это будет оценено по достоинству.

Imports System.Net.Mail 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim smtp As New SmtpClient
    smtp.Host = "10.241.128.220"
    smtp.Port = 25
    smtp.Send("nuri-fatih.guler@rzb.ro", "nuri-fatih.guler@rzb.ro", "test", "test")
End Sub

Ответы [ 3 ]

3 голосов
/ 15 апреля 2010

Убедитесь, что на машине, с которой вы отправляете электронные письма, есть разрешения на использование этого почтового сервера в качестве ретранслятора. Это не столько проблема программирования, сколько проблема с сервером, поэтому на Serverfault лучше ответить.

Вот хорошее место для начала: http://support.microsoft.com/kb/895853

Редактировать - добавлено.

Я нашел список ниже на другом сайте.

Это 4 наиболее вероятных причины проблемы.

  1. На указанном вами IP-адресе не работает ни одна служба.
  2. в пути есть брандмауэр (на клиенте или сервере)
  3. в пути есть антивирусный сканер (на клиенте или сервере)
  4. Вашему почтовому серверу не нравится исходный IP-адрес, поэтому он разрывает соединение.

Мой ответ выше касался пункта № 4, поскольку большинство почтовых серверов позволяют блокировать сквозные функции и открывать его для определенных IP-адресов.

Таким образом, SMTP-сервер должен быть настроен так, чтобы IP-адрес компьютера, который вы используете, использовался в качестве сквозного SMTP-сервера, что вы и делаете при использовании пространства имен System.Net.Mail. и указание почтового сервера, отличного от локального хоста.

Как правило, когда у меня возникла проблема # 4, я мог отправить с помощью Outlook. В этой ситуации должно быть верно следующее:

  1. Почтовый сервер должен использовать Exchange
  2. Outlook подключается с использованием MAPI (по умолчанию при подключении к серверу Exchange).

В этом случае Exchange работает, поскольку IMAP не блокируется, НО System.Net.Mail использует SMTP, а SMTP может быть заблокирован, если MAPI нет.

1 голос
/ 19 апреля 2010

Я обнаружил проблему.Это было из-за McAfee Antivirus.Заблокировано 25 портов.Я отключил его, и проблема была решена.Спасибо всем.Особенно Дэвид.

0 голосов
/ 15 апреля 2010
  1. Outlook может не использовать SMTP для отправки электронной почты
  2. Вы уверены, что Outlook не подключается с использованием SSL?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...