?id=3edc6b6c-2278-4292-a171-7202e46fc42c
Cómo enviar correo electrónico por código usando cuentas de GMail
por José M. Alarcón
Nota: para que esto funcione debes habilitar en tu cuenta de Google el ajuste "Permitir aplicaciones menos seguras" o te dará un error. Si quieres ver en detalle cómo hacer esto o si te interesa mejor cómo enviar correo a través de GMail usando Java, lee este otro artículo.
Enviar correo electrónico desde código .NET usando un servidor SMTP es muy fácil gracias al uso de la clase System.Net.Mail.MailMessage.
Un servidor SMTP normal trabaja a través del puerto 25 y sólo necesitaremos tener unas credenciales válidas en el mismoq ue nos permitan enviar correo. Lo habitual en una aplicación cualquiera es usar el servidor SMTP de nuestra cuenta de correo favorito con esta técnica sin problemas.
Pero ¿qué pasa si nuestra cuenta de correo es de GMail? Pues que la técnica convencional no funcionará. El motivo es que GMail usa un puerto diferente y además precisa el uso de una conexión cifrada con SSL para seguridad, por lo que el código normal que vas a encontrar por ahí no te servirá.
¿Qué puedo hacer entonces?
La clase SmtpClient nos ayudará para conseguirlo. Básicamente se trata de indicarle un par de parámetros extra para indicar el puerto a utilizar y la obligatoriedad de SSL. Lo demás lo hará esta clase por nosotros.
El siguiente código en C# ilustra un ejemplo de cómo enviar un correo de prueba a través de GMail usando una aplicación de consola:
using System;
using System.Collections;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
public class EjemploCorreoGMail
{
public static void Main()
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add("[email protected]");
msg.From = new MailAddress("[email protected]", "Tu Nombre", System.Text.Encoding.UTF8);
msg.Subject = "Prueba de correo a GMail";
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = "Cuerpo del mensaje";
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;
//Aquí es donde se hace lo especial
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential("[email protected]", "miclave");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail
try
{
client.Send(msg);
}
catch (System.Net.Mail.SmtpException ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
}
José Manuel Alarcón Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.