En la mayoría de las aplicaciones existe la necesidad de enviar un
correo electronico, a continuación les muestro una forma
sencilla de
enviar un correo electronico desde
C# .net.
Lo primero que debemos hacer es llamar la libreria:
using
System.Net.Mail; luego para fines de este ejemplo, se crea un método llamado
SendMail que contiene toda la funcionalidad necesaria para construir y enviar el correo.
A continuación se declara un método llamado
SendMail recibiendo los parámetros necesarios para enviar el correo:
///
/// Envía un email
///
/// Quien lo envía
/// A quien se le envía
/// Asunto
/// Cuerpo del correo
/// Correo con copia oculta
/// Adjuntar archivos al correo
public void SendMail(System.String sFrom, System.String sTo,System.String sSubject, System.String sBody,System.String sCC, System.String[] sFile)
{
//Separar correos
string[] toAddresses = sTo.Split(';');
//Crear objeto que enviara el mail
System.Net.Mail.MailMessage mailNew = new MailMessage();
//Asigna propiedades y dirección desde la que se envía
mailNew.From = new System.Net.Mail.MailAddress(sFrom);
Al
objeto mail, agregamos los destinatarios (previamente fueron separados por punto y coma), copia oculta del correo. Asunto, cuerpo del correo, así como el formato en que se enviara el correo:
//Agregamos los destinatarios del correo y copia oculta
foreach (string toAddress in toAddresses)
{
mailNew.To.Add(new MailAddress(toAddress));
}
mailNew.Bcc.Add(sCC);
//Asunto y cuerpo del correo
mailNew.Subject = sSubject;
mailNew.Body = sBody;
//Habilitar formato html al correo y prioridad
mailNew.IsBodyHtml = true;
mailNew.Priority = MailPriority.Normal;
Configuramos las propiedades del servidor de correo, si necesita autenticación segura se deben configurar las
credenciales (Linea 11):
//Establecemos los datos del servidor de correo
System.Net.Mail.SmtpClient SmtpDominio = new System.Net.Mail.SmtpClient();
//Nombre del servidor de correo
SmtpDominio.Host = "smtp.dominiocorreo.com";
//Asignamos el número del puerto
SmtpDominio.Port = 80;
//Autenticación segura
SmtpDominio.EnableSsl = true
//Si el servidor de correo necesita autenticacion de agrega la siguiente linea
SmtpDominio.Credentials = new System.Net.NetworkCredential("correo@dominio.com", "clave123");
Como Enviar un Correo Electronico desde C# con Archivos Adjuntos
Si necesitamos enviar el correo electrónico con archivos adjuntos, se utiliza el siguiente código usando el objeto mailNew, el agrega el archivo a través del método
Attachments.Add, como lo pueden observar en el siguiente ejemplo:
try
{
//Limpiar objeto para adjuntar archivos
mailNew.Attachments.Clear();
//Si los hay, agregamos archivos adjuntos al correo
if (sFile != null)
{
for (int i = 0; i < sFile.Length; i++)
{
if (!string.IsNullOrEmpty(sFile[i].ToString()))
mailNew.Attachments.Add(new System.Net.Mail.Attachment(sFile[i].ToString()));
}
}
//Enviar correo
SmtpDominio.Send(mailNew);
//Muy importante esta linea, se debe liberar el objeto que almacena
//los archivos adjuntos
mailNew.Attachments.Dispose();
}
catch (Exception Ex)
{
//Error enviando
}
//Archivo Enviado
}