Enviado email anexado


por Mauricio Junior em 1/1/2011 0

 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.

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Vídeo: Windows Phone com Windows Mobile 7
Montando estrutura de um site MVC 2 com Visual Studio .NET 2010 - Parte 2
Vídeo: Série Atlas.NET - Parte III
Gerando uma dll com sistema web
Pegando IP da Máquina com CSharp
Sistema ASP 3.0 utilizando 3 camadas – Parte 2
Windows Phone 7 Jump Start
Vídeo - Google Earth Live em tempo real
Virtual Earth – Primeiro Passo
Microsoft touch mouse
Mensagem JavaScript com .NET
TreeView usando Banco de Dados
PDF Free - Programando para Windows Phone 7
Vídeo Live Search
Evento em Brasília de Tecnologia
Trabalhando com GridView, RowCommand e DataKeysNames
Sistema de Login em ASP – Parte IX (Utilizando três camadas)
Código fonte aberto
Desenvolvendo com Atributos (Javascript) e StringBuilder
User Control Windows executando no Internet Explorer (parte 1 de 2)
Gerando Relatório e Exportando para o Excel
Usando public interface
IsData
Vídeo Sobre Atributes e String Builder com Visual Studio .NET 2005
SQL Server 2005 SP2 já está disponível :)
Review do Windows Phone, Games e Aplicativos
Evento Brasil DotNet - gratuíto
Escrevendo e Controlando Log de Erro
Trabalhando bem com o “using”
Insistência com Vírus por E-mail
II Encontro .NET em Brasília
C# - Da introdução ao primeiro projeto-1
Vídeo - Sistema de Atendimento de Clientes
Dll Ajax
Vídeo mostrando como validar vários formulários