Enviando anexo em e-mail com ASP.NET | C# Brasil


Enviando anexo em e-mail com ASP.NET

{lang: 'pt-BR'}

Olá pessoa, a pedido de um amigo que recentemente começou programar em ASP.NET com C-Sharp, vou fazer um passo a passo de como enviar e-mail com anexo.

Estou utilizando o Visual Studio 2005, mais quem não tiver poderá usar o Visual Web Developer Express 2005 ou 2008.

1- Crie um novo projeto ASP.NET Web Site

2- Na página inicial que será criada automaticamente nesse novo projeto, adicione 4 Labels, 3 TextBox, 1 FileUpload e 1 Button.

3- De um duplo clique no botão e vamos implementar as opções de envio. Declare as seguintes Namespaces: System.Net.Mail, System.Net e System.IO


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

4- No método do botão vamos atribuir o código abaixo.


protected void btnEnviar_Click(object sender, EventArgs e)
{
	// Estancia da Classe de Mensagem
	MailMessage _mailMessage = new MailMessage();
	// Remetente
	_mailMessage.From = new MailAddress("meuemail@meuservidor.com");
	// Destinatario
	_mailMessage.CC.Add(txtEmail.Text);
	// Assunto
	_mailMessage.Subject = "Email com Anexo";
	// A mensagem é do tipo HTML ou Texto Puro?
	_mailMessage.IsBodyHtml = true;
	// Corpo da Mensagem
	_mailMessage.Body = txtNome.Text + " " + txtMensagem.Text;

	// Recupera o binario enviado pelo FileUpload
	MemoryStream MS = new MemoryStream(fileAnexo.FileBytes);
	// Anexa o Stream do arquivo
	Attachment anexo = new Attachment(MS, fileAnexo.FileName);
	_mailMessage.Attachments.Add(anexo);

	// Estancia a Classe de Envio
	SmtpClient _smtpClient = new SmtpClient("smtp.meuservidor.com");
	// Credencial para envio por SMTP Seguro (Quando o servidor exige autenticação)
	_smtpClient.Credentials = new NetworkCredential("meuemail@meuservidor.com", "123minhasenha");
	// Envia a mensagem
	_smtpClient.Send(_mailMessage);
}

Pronto, se executarmos o nosso código iremos receber o e-mail com as informações e anexo informado.

Revisão: A mesma técnica utilizada para envio de e-mail no webform, segue para o winform.

Quem tiver idéias de artigos, deixe seu comentário que irei providenciar para as próximas postagens.

Abraço a todos.

Posts relacionados:

  1. Manipulando arquivos Excel sem uso da interoperabilidade ou conexão OLEDB
  2. Dica – Adicionar um arquivo CSS dinamicamente em um WebForm
  3. Dica – Converter um DataSet em XML
  4. Vem ai a semana de Interoperabilidade
  5. Fórum C-Sharp

Postado em ASP.NET, C#, Visual Studio | Marcado como , , , ,

Um comentário sobre “Enviando anexo em e-mail com ASP.NET”

  1. Wilians disse:

    Ola,
    Boa Tarde!

    Gostaria de pedir sua ajuda a algumas semanas tenho tentado resolver um problema do método enviar e-mail em asp.net c# mas sem sucesso.

    Ocorre varios erros para todas as tentativas mas dois são bem especificos alias a usar o seu metodo isso ocorreu também então venho pedir sua ajuda para indentificar o problema.

    Obrigado

    Wilians

    segue os erro:

    Caixa de correio não disponível. A resposta do servidor foi: 5.7.1 … we do not relay
    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

    Detalhes da Exceção: System.Net.Mail.SmtpFailedRecipientException: Caixa de correio não disponível. A resposta do servidor foi: 5.7.1 … we do not relay

    Erro de Origem:

    Linha 81: // Envia a mensagem
    Linha 82:
    Linha 83: _smtpClient.Send(_mailMessage);
    Linha 84:
    Linha 85: }

Deixe um Comentário

Qual a soma da expressão:
4 + 3