2016-09-02 4 views
-1

У меня есть веб-страница asp.net, которая уведомляет пользователей по электронной почте в определенных ситуациях. Около 30% случаев, однако, электронное письмо не отправляется и исключение SmtpException:SMTPException происходит около 30% времени

System.Net.Mail.SmtpException: Отказ отправки почты. ---> System.IO.IOException: не удается прочитать данные с транспорта подключение: net_io_connection закрыто.

Поскольку я некоторое время боролся с этой ошибкой, мне удалось извлечь SmtpStatusCode, который гласит: «Общий сбой». В качестве сервера smtp я использую мандрилл с настройками:
<network host="smtp.mandrillapp.com" password="####" port="25" userName="####" enableSsl="false" />.

Может ли кто-нибудь дать мне повод, почему эта ошибка возникает только в 30% случаев, а не всегда. Я просмотрел другие вопросы о stackoverflow, но они касаются ситуации, когда она вообще не работает.

ответ

0

Если вы находитесь в жилом интернет-соединении, ваш интернет-провайдер блокирует исходящие отправления электронной почты, блокируя все исходящие подключения к порту 25. Попробуйте подключиться к локальному серверу электронной почты через TCP/IP или к одному в вашей собственной внутренней сети.

Update

Как вы просите истории, Вот blog о котором я говорил, чтобы ответить на ваш вопрос

В 1982 году в Университете Южной Калифорнии представил предложение в Интернете Инженерная целевая группа (IETF). Был отправлен запрос на комментарии (RFC) 821, установив порт 25 в качестве передачи по умолчанию канала для электронной почты в Интернете. 30 лет спустя мы по-прежнему используем порт 25 как основным средством передачи электронной почты между двумя почтовыми серверами. A несколько RFC устарели исходным SMTP RFC, однако основа для SMTP остается той же или подобной.

В декабре 1998 года Р. Геленс и Дж. Кленсин представили RFC 2476 в поддержку добавления новой спецификации для электронной почты электронной почты . RFC предложил раскол традиционного сообщения концепции представления и передачи сообщений. RFC определенно, что представление сообщения должен происходить через порт 587 для обеспечения новой политики и требования безопасности не мешает традиционному реле трафика через сообщение релейного порт 25.

Так почему порт 25 не работают в твоем случае ?

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

Почему 587 будет работать?

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

Все клиенты Mailgun должны использовать этот порт по умолчанию, , если вы явно не заблокированы своей восходящей сетью или хостингом . Этот порт, в сочетании с шифрованием TLS, обеспечит надежную отправку электронной почты и в соответствии с руководящими принципами, установленными IETF.

+0

Хорошо, но почему 70% писем отправлено правильно? – Siocki

+0

@Siocki не знаю, почему это происходит, вы попробовали, изменив порт на 587? – Webruster

+0

У меня нет другого выбора, но все же у меня был сайт с точно такими же настройками, и он отлично работал. – Siocki