Como enviar un Coreo Electronico desde C# .NET utilizando el SMTP de GMail y/o Hotmail

En este Post compartiré con ustedes una manera muy fácil y rápida para enviar un eMail desde una aplicación .Net C#. Si no tienen su propio servidor de correo (SMTP), utilizaremos los servidores de Google y/o Microsoft.

Suponiendo que ya tenemos nuestra aplicacion creada, agregamos una nueva clase llamada Correos la cual contendra la informacion del SMTP y el metodo Enviar(MailMessage mensaje).

// Agregamos un nuevo Using a la clase.
using System.Net.Mail;
// El código de la clase es:
class Correos
    {
        /*
         * Cliente SMTP
         * Gmail:  smtp.gmail.com  puerto:587
         * Hotmail: smtp.liva.com  puerto:25
         */
        SmtpClient server = new SmtpClient("smtp.gmail.com", 587);

        public Correos()
        {
            /*
             * Autenticacion en el Servidor
             * Utilizaremos nuestra cuenta de correo
             *
             * Direccion de Correo (Gmail o Hotmail)
             * y Contrasena correspondiente
             */
            server.Credentials = new System.Net.NetworkCredential("xxxx@gmail.com", "xxxx");
            server.EnableSsl = true;
        }

        public void MandarCorreo(MailMessage mensaje)
        {
            server.Send(mensaje);
        }
    }

Pues bien, ya tenemos la Clase encargada de enviar los correos, ahora podemos llamarla desde cualquier punto de nuestra aplicación.  Sin olvidar agregar el Using Correspondiente:

using System.Net.Mail;
try
{
    Correos Cr = new Correos();
    MailMessage mnsj = new MailMessage();

    mnsj.Subject = "Hola Mundo";

    mnsj.To.Add(new MailAddress("amiguito@domain.com"));

    mnsj.From = new MailAddress("YO@MiDominio.com", "Nombre Apellido");

    /* Si deseamos Adjuntar algún archivo*/
    mnsj.Attachments.Add(new Attachment("C:\\archivo.pdf"));

    mnsj.Body = "  Mensaje de Prueba \n\n Enviado desde C#\n\n *VER EL ARCHIVO ADJUNTO*";

    /* Enviar */
    Cr.MandarCorreo(mnsj);
    Enviado = true;

    MessageBox.Show("El Mail se ha Enviado Correctamente", "Listo!!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

Pues bien, eso es todo por esta ocasión, como dije en un principio, creo que es muy fácil y rápido, por lo que no considero necesario subir el código del proyecto.

Espero les sea de utilidad el post, y como siempre, se agradecerán todos los comentarios.