Formulário para envio de e-mail em ASP.NET

Olá pessoal, tudo bom?

Deixo aqui uma pequena dica para aqueles que querem enviar e-mails a partir de formulários ou rotinas em ASP.NET. O Framework .NET possui um namespace específico para esse fim que é o System.Net.Mail. Tal namespace possui uma série de classes e métodos para a prática de envio de e-mail, porém exploro apenas algumas delas nos exemplos a seguir:

Exemplo 1: Enviando mensagens sem formatação de texto ou anexos

....
using System.Net.Mail;
....
....
protected void btnEnviar_Click(object sender, EventArgs e)
{
   SmtpClient email = new SmtpClient("smtp.servidor.com"); //Utilize seu próprio servidor SMTP
   try
   {
      email.Send(txtEmailRemetente.Text,txtTo.Text,txtAssunto.Text,txtMensagem.Text);
      lblMensagem.Text = "OK";
   }
   catch (Exception erro)
   {
      lblMensagem.Text = erro.Message;
   }
}

Exemplo 2: Enviando mensagens com textos formatados, com cópia ou cópia oculta e anexos

....
using System.Net.Mail;
....
....
protected void btnEnviar_Click(object sender, EventArgs e)
{
   SmtpClient email = new SmtpClient("smtp.servidor.com"); //Utilize seu próprio servidor SMTP
   try
   {
      MailMessage msg = new MailMessage();
      MailAddress remetente = new MailAddress(txtEmailRemetente.Text, txtNomeRemetente.Text);
      msg.From = remetente;
      msg.Subject = txtAssunto.Text;
      msg.Body = txtMensagem.Text;
      msg.IsBodyHtml = true;
      if (!txtTo.Text.Equals(string.Empty)) //Verifica se há destinatário
         msg.To.Add(txtTo.Text);
      if (!txtCC.Text.Equals(string.Empty)) //Verifica se há destinatário com cópia
         msg.CC.Add(txtCC.Text);
      if (!txtBCC.Text.Equals(string.Empty)) //Verifica se há destinatário com cópia oculta
         msg.Bcc.Add(txtBCC.Text);

      if (fuAnexo.HasFile) //Verifica se há anexo
      {
         Attachment anexo = new Attachment(fuAnexo.PostedFile.InputStream, fuAnexo.FileName);
         msg.Attachments.Add(anexo);
      }

      email.Send(msg);
      lblMensagem.Text = "OK";
   }
   catch (Exception erro)
   {
      lblMensagem.Text = erro.Message;
   }
}

Grande abraço,

Eduardo Henrique Rizo

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , ,
Publicado em ASP.NET, Desenvolvimento Web
2 comentários em “Formulário para envio de e-mail em ASP.NET
  1. Estou usando a hospedagem da locaweb, e ele retorna a seguinte msg ” Para envio de mensagens e necessaria autenticacao. ” … alguem sabe o que devo fazer?

    • Boa tarde Victor, tudo bom?
      Bastaria fazer o seguinte:


      email.UseDefaultCredentials = false;
      email.Credentials = new System.Net.NetworkCredential(“seu login”,”sua senha”);

      Abraços,
      Eduardo Henrique Rizo

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: