ara enviar un correo electrónico tenemos que usar los siguientes espacios de nombres
[sourcecode language='csharp']using System.Net;
using System.Net.Mail;[/sourcecode]
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
[sourcecode language='csharp']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;
}
[/sourcecode]
- 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 del host, nombre de usuario y contraseña sean correctos.
- Tengas acceso a la red y no salgas a Internet a través de un proxy.
- Comprobar si el antivirus te está bloqueando el envio del correo. A mi con el McAfee activado no puedo enviar correos.
Saludos.
