Como enviar un correo electrónico desde ASP.NET

Revisando mi último post (Enviar un mail con varias lineas en ASP.NET), he decidido escribir un pequeño articulo de como enviar un correcto en ASP.NET 2.0 (o superiores). Para enviar un correo electrónico tenemos que usar los siguientes espacios de nombres

 

using System.Net;
using System.Net.Mail;
 

Con esto tendremos a nuestra disposición una serie de clases que nos harán la vida muy fácil para conseguir nuestro objetivo. Para enviar un correo electrónico necesitamos la siguiente información

  • Servidor smtp
  • Puerto (normalmente 25)
  • Nombre de usuario y contraseña en caso que el servidor requiera autencación.

 

El código es tan simple como este

try
{
SmtpClient smtpClient = new SmtpClient("Servidor SMTP", 25);

// Si tu servidor necesita autenticación
if ((_userName != string.Empty) && (_password != string.Empty))
{
NetworkCredential networkCredential = new NetworkCredential("username", "passwor");
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = networkCredential;
}

string body = string.Empty;
if (_isBodyHtml)
body = "Tu mensaje en html.";
else
body = "Tu mensaje en texto plano.";

MailMessage mailMessage = new MailMessage("from", "to", "subject", body);
mailMessage.IsBodyHtml = _isBodyHtml;

if (_sendAsync)
smtpClient.SendAsync(mailMessage, null);
else
smtpClient.Send(mailMessage);
}
catch
{
throw;
}

 

  • Al principio creamos una instancia del objeto SmtpClient para lo cual necesitamos una dirección del host y el puerto de conexión.
  • Despues, es caso de que nuestro servidor requiera autenticación, creamos la credenciales que se usar al conectar con nuestro servidor de correo.
  • Despues construimos el mensaje, en base a la variable _isBodyHtml que nos dirá si el mensaje irá en texto plano o en html.
  • Posteriormente creamos el mensaje de correo, con un from (de), to (para), subject(asunto) y el mensaje.
  • Y para finalizar se envia el correo de manera síncrona o asíncrona dependiendo de _sendAsync.

 

Como vemos es realmente fácil. En caso que el envio te falle ten en cuenta

  1. Comprueba que los datos sean correctos.
  2. Tengas acceso a la red y salgas a Internet a través de un proxy.
  3. Mira ver si el antivirus te está bloqueando el envio del correo. A mi con el McAfee activado no puedo enviar correos.

Saludos.

Published viernes, 18 de julio de 2008 14:55 by Indigo
Filed under: , , ,

Comments

# Como enviar un correo electrónico desde ASP.NET

viernes, 18 de julio de 2008 15:30 by www.webeame.net

Revisando mi último post, he decidido escribir un pequeño articulo de como enviar un correcto en ASP.NET 2.0 (o superiores). Para enviar un correo electrónico...

# Como enviar un correo electrónico desde ASP.NET

viernes, 18 de julio de 2008 15:30 by www.programame.net

Revisando mi último post, he decidido escribir un pequeño articulo de como enviar un correcto en ASP.NET 2.0 (o superiores). Para enviar un correo electrónico...

# re: Como enviar un correo electrónico desde ASP.NET

lunes, 28 de julio de 2008 18:01 by elivilar15@hotmail.com

hola

# re: Como enviar un correo electrónico desde ASP.NET

miércoles, 07 de enero de 2009 16:42 by Rodrigo

Me sirvio mucho, se agradece =)

# re: Como enviar un correo electrónico desde ASP.NET

sábado, 10 de enero de 2009 17:40 by elber

Hola, estoy buscando informacion porque creo que para enviar muchos correos de golpe (uno a uno se entiende) la forma correcta de hacerlo es de forma asíncrona, pero indicando en la instrucción SendAsync una función callback que se llamaría al finalizar el primer envío, de forma que se envíe el primero de forma normal, pero el resto se haga desde la función callback.

Esto es porque creo que si envías uno y antes de que finlice la negociación con el servidor smtp intentas enviar otro seguido puede dar una excepción y fallar el envío.

¿Sabes algo de esto que te comento? muchas gracias.

# re: Como enviar un correo electrónico desde ASP.NET

jueves, 05 de marzo de 2009 13:33 by Jose A.

No me Funciona,

Será que Yahoo no acepta smtp?

# re: Como enviar un correo electrónico desde ASP.NET

martes, 10 de noviembre de 2009 3:47 by Jaz

y como envio un correo con datos adjuntos? alguien me puede decir

# re: Como enviar un correo electrónico desde ASP.NET

jueves, 22 de abril de 2010 1:42 by algentina

enviar el correo de juana.iris1@hotmail.com

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Non-Commercial Edition), by Telligent Systems