Enviado correo electrónico con ASP.NET 2.0

Tagged: asp.net 2.0 email system.net.mail e-mail smtp

En este artículo les voy a mostrar lo sencillo que es enviar correos electrónicos desde ASP.NET 2.0, para esto vamos a utilizar la clase System.Net.Mail, una nueva clase de la versión 2.0 de Microsft .NET Framework.

En este espacio de nombres (Namespace) vamos a utilizar las siguiente clases:

MailMessage: Con esta clase vamos a crear el mensaje además que nos permitirá indicar quién envía el mensaje, quién lo recibe, el asunto, etc.

MailAddress: Con este objeto vamos a indicar quien envía el mensaje mediante la propiedad From de la clase MailMessage

Para enviar el mensaje vamos a utilizar un objeto de la clase SmtpClient, en donde tendremos que crear una nueva instancia de la clase para asignar los valores adecuados para poder mandar el mensaje.

"Ojo", estas clases solo se pueden utilizar con la versión 2.0 del Framework.

Bueno ya que vimos cuales son los elementos que nos permitirán enviar el correo vamos a ver como se hace:

Creación del Mensaje:

Vamos a utilizar las siguientes propiedades para crear el mensaje:

From: La persona que envía el mensaje
To: La persona que recibe el mensaje
Subject: El asunto del mensaje
Body: El contenido o cuerpo del mensaje

Una vez que sabemos cuales son las propiedades que vamos a utilizar, pasamos al código

Creamos un objeto de tipo System.Net.Mail.MailMessage

VB.NET:
Dim _mail As New System.Net.Mail.MailMessage

C#
System.Net.Mail.MailMessage _mail = new System.Net.Mail.MailMessage();

Ahora vamos a asignar las propiedades utilizando valores obtenidos de cajas de texto de una WebForm

VB.NET
_mail.From = New System.Net.Mail.MailAddress(txtDe.Text)
_mail.To.Add(txtPara.Text)
_mail.Subject = txtAsunto.Text
_mail.Body = txtTexto.Text
_mail.IsBodyHtml = False
_mail.Priority = System.Net.Mail.MailPriority.Normal

C#
_mail.From = new System.Net.Mail.MailAddress(txtDe.Text);
_mail.To.Add(txtPara.Text);
_mail.Subject = txtAsunto.Text;
_mail.Body = txtTexto.Text;
_mail.IsBodyHtml = false;
_mail.Priority = System.Net.Mail.MailPriority.Normal;

Una vez que hemos creado el objeto del mensaje vamos a enviarlo utilizando una instancia de la clase SmtpClient de la que estaremos usando las siguientes propiedades:

Host: Le indicamos el nombre del servidor de correo que estemos utilizando (Ej. mail.midominio.com):

VB.NET
Dim smtp As New System.Net.Mail.SmtpClient
smtp.Host = "mail.midominio.com"

C#
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Host = "mail.midominio.com";

Si nuestro servidor requiere autenticación, vamos a poder dársela mediante el objeto NetworkCredential, en donde le indicatemos el nombre de usuario y contraseña, ese objeto lo asignamos a la propiedad Credentials del objeto SmtpClient que acabamos de crear

VB.NET
smtp.Credentials = New System.Net.NetworkCredential("usuario", "password")

C#
smtp.Credentials = new System.Net.NetworkCredential("usuario", "password");

Ya que tenemos estos pasos realizados vamos a mandar el mensaje, para esto vamos a utilizar un botón al que le llamaremos "Enviar" y en el evento click de este botón escribimos el siguiente código:

VB.NET
Try
    smtp.Send(_mail)
    LabelError.Text = "El correo ha sido enviado con éxito"
Catch ex As Exception
    LabelError.Text = "Mensaje del Administrador: " & ex.Message
End Try

C#
try
{
    smtp.Send(_mail);
    LabelError.Text = "El correo ha sido enviado con éxito";
}
catch(Exception ex)
{
    LabelError.Text = "Mensaje del Administrador: " + ex.Message;
}

Les agradezco su atención y espero contar con sus comentarios. Cualquier duda o si quieren que ampliemos el tema por favor hagánoslo saber en sus comentarios o en los foros de discusión y con mucho gusto lo haremos.

Suerte!
Víctor Alameda

Add a Comment