SMTPException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed - программирование
Подтвердить что ты не робот

SMTPException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed

Я знаю, что этот вопрос выглядит как дубликат множества других вопросов, пока его нет.

Когда я пытаюсь отправить электронное письмо на свой локальный компьютер через мое веб-приложение, выдается исключение SMTPException и исключения:

//on this line : SmtpServer.Send(mail);
Unable to read data from the transport connection: net_io_connectionclosed.

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

Пока моя локальная машина используется для работы ранее, может ли кто-нибудь дать лишь подсказку, что может быть проблемой, которая поднимает эту проблему?

4b9b3361

Ответ 1

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

Ответ 2

Этот поток содержит некоторые.

Например: похоже, что назначение статического IP может решить проблему.

Эта ошибка означает, что System.net.mail не смог найти smtp-сервер.

Ответ будет зависеть от того, есть ли у вас фиксированный IP-адрес или динамический IP, но, в основном, вам необходимо назначить действительный IP-адрес для вашего smtp сервер.

С фиксированным IP это относительно просто. С динамическими IP-адресами это требует некоторой настройки.

Откройте диспетчер IIS и проверьте свойства для сервера smtp.

В свойствах виртуального сервера SMTP по умолчанию, на вкладке "Доступ", в диалоговом окне "Контроль соединения и реле" убедитесь, что ваш локальный IP назначается. (В моем случае это 10.0.0.2...)

Вам также может потребоваться изменить файл хостов, указывая 127.0.0.1 на имя вашей машины. (\ WINDOWS\system32\drivers\etc\hosts)

Затем в вашем коде присвойте имя вашего компьютера клиенту smtp:

Dim client As New SmtpClient("yourmachinename") client.Send(mail)

В качестве альтернативы другой парень в том же потоке похоже, нашел обходное решение для неправильного закрытия SMTP-соединения.

Установить SmtpClient.ServicePoint.MaxIdleTime = 1 в соответствии с поддерживаемой работать вокруг: http://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=146711что делает все smtp корректным.

Здесь полный образец:

MailMessage msgMail = new MailMessage();
msgMail.To.Add(new MailAddress("[email protected]"));
msgMail.Subject = "Message from web";
msgMail.IsBodyHtml = true;
msgMail.Body = "Test message";
SmtpClient Client = new SmtpClient();  /* uses settings form web.config */
Client.ServicePoint.MaxIdleTime = 1; /* without this the connection is idle too long and not terminated, times out at the server and gives sequencing errors */
Client.Send(msgMail);
msgMail.Dispose();

Ответ 3

System.Net.NetworkCredential(пользователь, пароль);///Неверно
System.Net.NetworkCredential(электронная почта, пароль);///правый

потому что какой-то сервер электронной почты является shability

Ответ 4

У используемой вами учетной записи Gmail есть ограничение на количество отправленных электронных писем в день/месяц, и если вы превысите этот предел, он отклонит любые исходящие электронные письма.