Saltar al contenido

SMTPException: no se pueden leer datos de la conexión de transporte: net_io_connectionclosed

Solución:

Si tiene una conexión a Internet residencial, a menudo su ISP bloqueará los envíos de correo electrónico salientes bloqueando todas las conexiones salientes al puerto 25. Esto es bastante común aquí en los EE. UU. Intente conectarse a un servidor de correo electrónico local a través de TCP / IP, oa uno en su propia red interna.

Este hilo contiene algunos.

Por ejemplo: parece que asignar una IP estática podría resolver el problema.

Lo que significa este error es que System.net.mail no pudo encontrar el servidor smtp.

La respuesta variará dependiendo de si tienes una IP fija o una IP dinámica pero, básicamente, necesitas asignar una IP válida a tu servidor smtp.

Con IP fijas, esto es relativamente sencillo. Con IP dinámicas, se necesitan algunos ajustes.

Abra el Administrador de IIS y verifique las propiedades del servidor smtp.

En las propiedades del Servidor virtual SMTP predeterminado, en la pestaña “Acceso”, en los cuadros de diálogo Control de conexión y Retransmisión, asegúrese de que su IP local esté asignada. (En mi caso, es 10.0.0.2 …)

Es posible que también deba modificar su archivo de hosts, para apuntar 127.0.0.1 al nombre de su máquina. ( WINDOWS system32 drivers etc hosts)

Luego, en su código, asigne el nombre de su máquina al cliente smtp:

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

Alternativamente, otro tipo en el mismo hilo parece haber encontrado una solución para que la conexión SMTP no se cierre correctamente.

Colocar SmtpClient.ServicePoint.MaxIdleTime = 1 de acuerdo con una solución alternativa admitida: http://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=146711 que hace que todos los smtp funcionen correctamente.

Aquí tienes una muestra completa:

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();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *