vtortola.NET Logo
Enviar un archivo por eMail

Enviar un archivo por eMail

por vtortola sábado, 01 de septiembre de 2007

Siguiendo la línea del artículo anterior donde explicaba como subir un archivo vía FTP, voy a mostrar ahora como enviar un archivo vía email con las clases contenidas en System.Net.Mail. Esta funcionalidad, puede ser más útil para informar de excepciones en una aplicación instalada en el cliente, comunicar alguna eventualidad, etc.. etc…

Ojo que esta no es la implementación de un servidor SMTP y que solo actúa como cliente de correo en modo de envio, por lo que es necesario que tengamos una cuenta de correo y un acceso SMTP (Hotmail no tiene SMTP gratuito, Gmail si, ó usa tu propio servidor si lo tienes).

El ejemplo es bastante claro y sencillo:

 

public void EnviarArchivoEmail(string FilePath, 
    string SmtpServer, int PortNum, NetworkCredential Auth, 
    MailAddress From, params MailAddress[] To)
{
    // Configuramos nuestro servidor SMTP
    SmtpClient SC = new SmtpClient(SmtpServer, PortNum);
 
    // Conexión segura (si la soporta el servidor)
    // Imprescindible para Gmail.
    SC.EnableSsl = false;
    
    // Creamos el mensaje de email
    using (MailMessage message = new MailMessage())
    {
        // Añadimos el remitente
        message.From = From;
 
        // Añadimos los destinatarios.
        foreach (MailAddress ma in To)
            message.To.Add(ma);
        
        string file = Path.GetFileName(FilePath);
 
        // Asunto
        message.Subject = "Enviando " + file;
 
        // Cuerpo
        message.Body =string.Format("Archivo {0} enviado el {1} a las {2}.",
            file,DateTime.Now.ToShortDateString(),
            DateTime.Now.ToShortTimeString());
 
        // Agrego el fichero como archivo adjunto
        message.Attachments.Add(new Attachment(FilePath));
 
        // Indico mis credenciales para autenticarme
        SC.Credentials = Auth;
 
        // Indico el modo de envio.
        SC.DeliveryMethod = SmtpDeliveryMethod.Network;
 
        // Y el timeout
        SC.Timeout = 10000;
 
        // Enviar eMail
        SC.Send(message);
    } 
}

Definiendo el destinatario como un array params, podemos añadir los destinatarios que creamos oportunos en la misma invocación de la función. El uso, más sencillo aún:

EnviarArchivoEmail(@"C:\Archivo.txt", // El archivo 
    "mail.mismtp.net", 25, // El servidor
    new NetworkCredential("Remitente@mismtp.net", @"mipassword"), //Mis credenciales
    new MailAddress("Remitente@mismtp.net", "Valeriano"),  // Remitente
    new MailAddress("destinatario1@gmail.com", "Destinatario 1"), // Destinatario 
    new MailAddress("destinatario2@gmail.com","Destinatario 2")); // Destinatario 

Actualmente calificado 5.0 por 2 persona(s)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

.NET 2.0 | C# 2.0

Related posts

Comentarios

septiembre 18. 2007 09:56

Gravatar

coectate de una vezzzzzzzzzzk me aburrrrrrrrroooooooo




antoni er presiiii

aaaaaaaaaaaaaaaaaaauuuuuuuuuuuuuuuuuuuuu

marina

septiembre 19. 2007 14:07

pingback

Pingback from einicio.com

Enviar un Email

einicio.com

Comments are closed

Powered by BlogEngine.NET 1.1.1.8
This theme is a variation of Mads Kristensen by Valeriano Tórtola

Valeriano Tórtola

Personal Ver perfil
E-mail Enviar correo
LinkedIn LinkedIn
Fotos Fotos
MCPD

Publicidad

Posts recientes

Disclaimer

Las opiniones mostradas aqui son mis opniones y no representan el punto de vista de mi empresa en ninguna forma.

Creative Commons License

Esta obra está bajo una licencia de Creative Commons

Locations of visitors to this page

© Copyright 2010

Sign in

Calendario

<<  julio 2010  >>
lumamijuvido
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

Ver en calendario extendido