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
- Comprueba que los datos sean correctos.
- Tengas acceso a la red y salgas a Internet a través de un proxy.
- Mira ver si el antivirus te está bloqueando el envio del correo. A mi con el McAfee activado no puedo enviar correos.
Saludos.