Cliente de email en .NET

Utilizando el espacio de nombre (namespace) System.Net.Mail, enviar un correo electrónico desde .NET es tarea sencilla.

Las clases que utilizaremos son:

  • SmtpClient: permite a la aplicación enviar el mensaje de correo electrónico mediante el protocolo SMTP.
  • MailMessage: representa el mensaje de correo electrónico que será enviado mediante la clase SmtpClient.
  • MailAddress: representa la dirección de un remitente o destinatario de correo electrónico.
  • NetworkCredential (esta clase pertenece al namespace System.Net): proporciona la credencial para el esquema de autenticación.

Para ejemplificar el uso, veamos directamente un poco de código escrito en C#:


private void buttonEnviar_Click(object sender, EventArgs e)
        {
            mMail m = new mMail();
            m.From(textDeCorreo.Text, textDeNombre.Text);
            MessageBox.Show(m.Send(textAMail.Text,textAAsunto.Text,textContenido.Text));
        }

class mMail
    {
        private String fromMail;
        private String fromName;

        SmtpClient client;

        public mMail()
        {
            client = new SmtpClient();
            client.Credentials = new NetworkCredential("nombre@servidor.com", "password");
            client.Port = 587;
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true;
        }

        public void From( String fromMail, String fromName )
        {
            this.fromMail = fromMail;
            this.fromName = fromName;
        }

        public String Send(String to, String subject, String body)
        {
            MailMessage msg = new MailMessage();

            msg.To.Add(to);
            msg.From = new MailAddress(this.fromMail, this.fromName , System.Text.Encoding.UTF8);
            msg.Subject = subject;
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            msg.Body = body;
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            msg.IsBodyHtml = true;

            try
            {
                this.client.Send(msg);
                return "Mail enviado correctamente";
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

    }

1 comentario en este artículoDeje el suyo
  1. Genial muy buen código muchaS pero mcuhas gracias..
    estaría padre poder enviar los emails desde cualquier cuenta se correo
    electrónico (incluir tambien hotmail por ejemplo), seguiré investigando, soy nuevo en esto
    muchisimas gracias.

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress