Enviado correo electrónico con ASP.NET 2.0
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