OlĂĄ pessoal, hoje gostaria de mostrar como enviar um email com arquivo em anexo usando a linguagem C#.NET. Procurei fazer um mĂ©todo simples e fĂĄcil para entendimento, assim vocĂȘ nĂŁo perde muito tempo analisando o cĂłdigo.

ReferĂȘncia:
Ferramenta Visual Studio .NET
Linguagem C#.NET
Criação de um método genérico
Uso: qualquer plataforma .NET (Web ou Windows Forms)

 Criei um mĂ©todo bem genĂ©rico e com ele pode ser enviado email com arquivo em anexo. O email para ser enviado com anexo precisa de usar um FileStream que passei como parĂąmetro na chamada do mĂ©todo.  Depois utilizei o Attachments para mandar o mesmo por e-mail com um tĂ­tulo fixo.

using System;
using System.IO;
using System.Net.Mail;

Code 1

 A primeira coisa foi importar as classes citadas acima. (Code 1). O prĂłximo cĂłdigo Ă© o mĂ©todo criado chamado EnviarEmail. Note que eu passo o nome do servidor, de, para, assunto, corpo da mensagem, cĂłpia oculta e o arquivo em anexo. (Code 2).

Método genérico

public static void EnviarEmail(string server, string From, string to, string subject, string body, string Cc, FileStream fileStream)
{
SmtpClient smtp = new SmtpClient(server); //"10.0.3.0";
      MailMessage mailSend = new MailMessage();
      mailSend.From = new MailAddress(From.Replace(';', ','));
      mailSend.To.Add(to.Replace(';', ','));
      if (!String.IsNullOrEmpty(Cc))
       mailSend.CC.Add(Cc);
mailSend.Subject = subject;
      mailSend.SubjectEncoding = System.Text.Encoding.UTF8;
      mailSend.Body = body;
      mailSend.BodyEncoding = System.Text.Encoding.UTF8;
      mailSend.IsBodyHtml = true;
      mailSend.Attachments.Add(new Attachment(fileStream, "attachment"));
            smtp.Send(mailSend);
        }

Code 2.

 Note que o arquivo anexado do tipo FileStream pega o dado e anexa colocando um tĂ­tulo de “attachment”. No meio do cĂłdigo eu verifico a questĂŁo da cĂłpia oculta, caso nĂŁo houver basta mandar null.


Uso do método genérico

FileStream fileToAttach = File.Open(@"c:\MeuArquivo.txt", FileMode.Open); //Ler arquivo do file system
EnviarEmail(server, From, to, subject, body, Cc, fileToAttach);

Bom, espero que tenha ajudado em alguma coisa e qualquer dĂșvida pode entrar em contato.