válido validación una transporte tiempo smtpexception siguiente servidor según segura requiere remoto puede produjo procedimiento posible operación nombre net mipony mail excedió espera escribir error enviar datos correo conexión conectar con cliente certificado autenticó c# email

c# - validación - se produjo el siguiente error error de transporte en la conexión al servidor



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

Sé que esta pregunta parece un duplicado de docenas de otras preguntas, mientras que no lo es.

Cada vez que intento enviar un correo electrónico a mi máquina local a través de mi aplicación web, se lanza una excepción SMTPException y las excepciones son:

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

Si bien el código de producción funciona a la perfección, el mismo código, las mismas conexiones, las mismas credenciales, uso IP en lugar de alias, intenté desactivar el firewall en mi máquina local y nada me ayudó a solucionar este problema. .

Mientras que en mi máquina local se utiliza para trabajar previamente, ¿alguien puede dar una pista de lo que podría ser el problema que plantea este problema?


System.Net.NetworkCredential (usuario, contraseña); ///Incorrecto
System.Net.NetworkCredential (correo electrónico, contraseña); ///derecho

porque algunos servidores de correo electrónico son debilidad


Si se encuentra en una conexión residencial a Internet, con bastante frecuencia su ISP bloqueará los envíos salientes de correo electrónico 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 o a uno en su propia red interna.


Este hilo contiene algunos.

Por ejemplo: parece que la asignación de 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 tiene una IP fija o una IP dinámica, pero, básicamente, debe asignar una dirección IP válida a su servidor smtp.

Con IP fijas, esto es relativamente sencillo. Con las IP dinámicas, requiere un poco de ajuste.

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 necesite modificar su archivo de hosts, para señalar 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 sujeto en el mismo hilo parece haber encontrado una solución alternativa para que la conexión SMTP no se cierre correctamente.

Establezca SmtpClient.ServicePoint.MaxIdleTime = 1 acuerdo con una SmtpClient.ServicePoint.MaxIdleTime = 1 compatible: http://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=146711 que hace que todo smtp funcione correctamente.

Aquí hay 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();


La cuenta de Gmail que está utilizando tiene un límite para el número de correos electrónicos que se envían por día / mes y, si supera ese límite, rechazará cualquier otro correo electrónico saliente.