net mvc error envio enviar desde correo asp asp.net smtp iis-5

asp.net - mvc - ¿Cómo configuro correctamente el servicio SMTP de IIS5 para enviar correos electrónicos desde mi entorno de desarrollo?



enviar correo mvc c# (5)

Todavía estoy probando este Jim, una cosa que noté es que no estás configurando correctamente tu dirección. From acepta una clase MailAddress, no una cadena.

Cambio:

message.From = "[email protected]";

A:

message.From = new MailAddress("[email protected]");

En Configuración SMTP predeterminada:

¿El menú desplegable "Dirección IP:" está establecido en 127.0.0.1 o (Todos no asignados)? Si es posible, configúralo como Todo sin asignar. Intente agregar la dirección IP vinculada a su máquina para poder retransmitir a través del servicio SMTP. Aunque envíe su correo electrónico a su host 127.0.0.1, puede enviarlo desde su red local asignada ip. Para asegurarse de que las cosas funcionen, es posible que desee seleccionar el botón de opción en Restricciones de retransmisión en "Todas excepto la lista a continuación" y borrar la lista. Esto abrirá el relé para probar su configuración. Debe restringir esto una vez que descubra cuál es su problema.

¿Hay algún código de error en su registro SMTP?

Estoy intentando enviar correos electrónicos desde una aplicación web ASP.NET utilizando la clase SmtpClient. Hasta ahora he otorgado acceso de retransmisión a 127.0.0.1. Estoy tratando de enviar correos electrónicos de prueba a mi cuenta de Gmail. Los archivos EML se atascan en la carpeta de cola de mailroot. Mi firewall WinXP está deshabilitado. No recibo excepciones en el código, pero los correos electrónicos nunca se envían a la dirección de destino. También probé otras cuentas de correo electrónico.

SmtpClient client = new SmtpClient(); client.Host = "127.0.0.1"; MailMessage message = new MailMessage(); message.To.Add("[email protected]"); message.From = "[email protected]"; message.Subject = subject; message.IsBodyHtml = false; message.Body = body; client.Send(message);

Aquí hay un fragmento del registro SMTP de IIS.

Software: Microsoft Internet Information Services 5.1 Version: 1.0 Date: 2009-01-16 18:28:28 Fields: time c-ip cs-method cs-uri-stem sc-status 18:28:28 127.0.0.1 EHLO - 250 18:28:28 127.0.0.1 MAIL - 250 18:28:28 127.0.0.1 RCPT - 250 18:28:28 127.0.0.1 DATA - 250 18:29:45 127.0.0.1 MAIL - 250 18:29:45 127.0.0.1 RCPT - 250 18:29:45 127.0.0.1 DATA - 250 18:30:37 127.0.0.1 QUIT - 0


Si el código no devuelve excepciones, es poco probable que exista algo allí. Si miras el archivo raw .EML, revisa allí y busca cualquier cosa fuera de lugar.

Sin embargo, el problema más probable es simplemente darle a IIS una patada "iisreset". Hazlo y probablemente verás que los mensajes comienzan a enviarse. Los cambios de configuración en el servidor SMTP no siempre entran en juego hasta que se reinicia.


Dependiendo de cómo esté configurada su red, es posible que necesite decirle a IIS que transfiera los correos electrónicos a su servidor de Exchange para que se pasen al mundo exterior. Para hacer esto:
1. Haga clic con el botón derecho en el nodo Servidor virtual SMTP predeterminado en el complemento IIS MMC y abra el cuadro de diálogo Propiedades.
2. Vaya a la pestaña Entrega y haga clic en el botón Avanzado en la parte inferior de la pestaña.
3. En el cuadro Smart Host, ingrese el nombre de su servidor de Exchange. (O una entrada de DNS para el mismo, por ejemplo, smtp.midominio.com)


Verifica el visor de tu evento, luego verás algo como esto

La entrega de mensajes al dominio remoto ''yahoo.com'' falló por la siguiente razón: Se produjo un error de protocolo SMTP.

Para obtener más información, vea el Centro de ayuda y soporte en http://go.microsoft.com/fwlink/events.asp .

(Esto es mío). ¿Creo que yahoo debe tener algún tipo de protocolo? ¿O estamos configurando el protocolo incorrecto? Todavía estoy pensando ... Envíenme un correo electrónico pls [email protected] (con un buen tema así que no creo que sea spam)


He estado luchando con el mismo problema y creo que sé por qué y la solución.

El problema y cómo probarlo
En primer lugar, verifiqué que podía conectarme a través del puerto 25. Lo hice fácilmente abriendo telnet en un símbolo del sistema y escribiendo, por ejemplo (el pequeño círculo es la letra O por sí mismo, no un símbolo :));

o auth.smtp.1and1.co.uk 25

Si eso se conecta (en lugar de darle un error) entonces no es un problema de firewall con el puerto 25. Si le da un error, primero verifique la configuración de su firewall hasta que esto funcione.

Luego habilité el inicio de sesión en el servicio SMTP y marqué todas las propiedades extendidas. Esto me dio dos URL en el archivo de registro. En mi caso, fueron
http://www.spamhaus.org/query/bl?ip=217.44.248.144
http://www.sorbs.net/lookup.shtml?217.44.248.144

Siguiendo esos enlaces, básicamente quedó claro que alguien (supongo que el servidor receptor) está revisando y viendo que estoy enviando desde una dirección IP dinámica (solo estoy haciendo esto desde mi casa a través de ADSL) y bloqueándolo como SPAM.

La solución
Necesita configurar su servidor SMTP para retransmitir a través del servidor SMTP de su ISP.
1. Vaya a Propiedades para el Servicio SMTP y vaya a Entrega -> Avanzado
2. Ponga el nombre del servidor SMTP de su ISP en el campo "Smart host" (por ejemplo, auth.smtp.1and1.co.uk)
3. Guarde eso
4. De vuelta en la pestaña Entrega, haga clic en la pestaña Seguridad de salida
5. Haga clic en "autenticación básica" y especifique el nombre de usuario y la contraseña que utiliza para acceder a su correo electrónico.

Nota; He supuesto anteriormente que debe autenticarse en el servidor SMTP de su ISP y que usan el mismo uid / pwd para POP3 / IMAP y SMTP ya que es el más común. Su situación puede variar: verifique su configuración de correo electrónico en su programa de correo electrónico.