visual studio form envio enviar electronico credenciales correo con archivo adjunto c# iis-6 smtp

c# - studio - Enviar correo usando localhost SMTP



enviar email c# windows form (6)

¿Has probado habilitar el relevo?

Buscar el administrador de IIS6 (he encontrado que la búsqueda de IIS puede arrojar 2 resultados) ir a las propiedades del servidor SMTP, luego ''Acceso'' y luego presionar el botón de transmisión.

Luego puede seleccionar todo o solo permitir ciertas IP como 127.0.0.1

Estoy intentando configurar el servidor SMTP en IIS para enviar correos. El servidor SMTP está destinado a ser utilizado por el código ASP.NET en C #.

Anteriormente estaba usando gmail smtp, 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 debería dar para los parámetros UseDefaultCredentials y Credentials. Voy a asignar un valor 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 IIS SMTP local, establezca DeliveryMethod en PickupDirectoryFromIis. Por ejemplo:

smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

Esto omite por completo 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 utilizas el código anterior, significa que puedes deshacerte de esta parte de tu 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 simplemente configure el servidor para que solo acepte conexiones locales.


Si desea probar los correos electrónicos en localhost, simplemente descargue la herramienta de corte de papel 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 que envían usando localhost.

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


Tx Natim, lo que dices funcionó para mí. Haga que nuestra aplicación de intranet utilizando autenticación integrada con nuestro servidor de intercambio 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)