Enviar correo usando localhost SMTP

Estoy intentando configurar el servidor SMTP en IIS para enviar correos. Se pretende que el servidor SMTP sea utilizado por el código ASP.NET en C #.

Anteriormente estaba usando gmail smtp en donde proporcioné smtp.gmail.com como host con puerto seguro y mi gmail uid / pwd. Eso funcionó bien. Aquí está el código usado para hacer eso.

SmtpClient smtpClient = new SmtpClient(); smtpClient.UseDefaultCredentials = false; smtpClient.Host = "smtp.gmail.com"; smtpClient.Port = 587; smtpClient.Credentials = new NetworkCredential(uname,pwd); smtpClient.EnableSsl = true; smtpClient.Send(mailMessage); 

Ahora planeo usar el servidor SMTP localhost en IIS, qué valores debo dar para los parámetros UseDefaultCredentials y Credentials. Asignaré falso a EnableSsl ya que está sobre el puerto 25.

Además, cuál podría ser la configuración de servidor virtual SMTP más simple.

Creo que en localhost puedes usar:

 SmtpClient smtpClient = new SmtpClient(); smtpClient.UseDefaultCredentials = true; smtpClient.Send(mailMessage); 

Cuando esté utilizando el servicio SMTP de IIS local, configure el Método de entrega en PickupDirectoryFromIis. Por ejemplo:

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 

Esto omite totalmente la capa de red y escribe los mensajes directamente en el disco. Es mucho más rápido que pasar por el protocolo SMTP hablador.

Cuando utiliza el código anterior, significa que puede deshacerse de esta parte de su código:

 smtpClient.UseDefaultCredentials = false; smtpClient.Host = "smtp.gmail.com"; smtpClient.Port = 587; smtpClient.Credentials = new NetworkCredential(uname,pwd); smtpClient.EnableSsl = true; 

Depende de cómo configure el servidor smtp. Es posible que no necesite usar ninguna credencial y solo configurar el servidor para que solo acepte conexiones locales.

¿Has intentado habilitar el relé?

Encuentre el administrador de IIS6 (he encontrado que la búsqueda de IIS puede devolver 2 resultados), vaya a las propiedades del servidor SMTP, luego ‘Acceso’ y luego presione el botón de retransmisión.

Entonces puede seleccionar todo o solo permitir ciertas direcciones IP como 127.0.0.1

Relé SMTP

Tx Natim, lo que dices funcionó para mí. Tenga nuestra aplicación de intranet utilizando autenticación integrada con nuestro servidor de Exchange 2007 ahora:

 Dim msg As New MailMessage() Dim smtp As SmtpClient msg.From = New MailAddress(strFrom) msg.To.Add(strTo) msg.Subject = strSubject msg.Body = strBody smtp = New SmtpClient("ServerName") smtp.UseDefaultCredentials = True smtp.Send(msg) 

Si desea probar los correos electrónicos en localhost, simplemente descargue la herramienta de papercut https://papercut.codeplex.com/

y cambie el nombre de host a localhost como se muestra a continuación. Papercut captura todos los correos electrónicos enviados usando localhost.

  smtpClient.UseDefaultCredentials = false; smtpClient.Host = "localhost"; smtpClient.Port = 587; smtpClient.Credentials = new NetworkCredential(uname,pwd); smtpClient.EnableSsl = true;