Enviar Email com Asp.Net

O envio de email com Asp.Net e C# é bastante simples. Você pode utilizá-lo para enviar emails através do seu site em Asp.Net para usuários, por exemplo, em uma newsletter, ou para você mesmo em um formulário de contato.

Vamos ao código C#: (explicação comentada antes de cada linha)

Código C#

//inclua as classes abaixo
using System.Net.Mail;
using System.Net;
using System.Text;//crio objeto responsável pela mensagem de email
MailMessage objEmail = new MailMessage();

//rementente do email
objEmail.From = new MailAddress("email@seusite.com.br");

//email para resposta(quando o destinatário receber e clicar em responder, vai para:)
objEmail.ReplyTo = new MailAddress("email@seusite.com.br");

//destinatário(s) do email(s). Obs. pode ser mais de um, pra isso basta repetir a linha
//abaixo com outro endereço
objEmail.To.Add("destinatario@provedor.com.br");

//se quiser enviar uma cópia oculta pra alguém, utilize a linha abaixo:
objEmail.Bcc.Add("oculto@provedor.com.br");

//prioridade do email
objEmail.Priority = MailPriority.Normal;

//utilize true pra ativar html no conteúdo do email, ou false, para somente texto
objEmail.IsBodyHtml = true;

//Assunto do email
objEmail.Subject = "Assunto";

//corpo do email a ser enviado
objEmail.Body = "Conteúdo do email. Se ativar html, pode utilizar cores, fontes, etc.";

//codificação do assunto do email para que os caracteres acentuados serem reconhecidos.
objEmail.SubjectEncoding = Encoding.GetEncoding("ISO-8859-1");

//codificação do corpo do emailpara que os caracteres acentuados serem reconhecidos.
objEmail.BodyEncoding = Encoding.GetEncoding("ISO-8859-1");

//cria o objeto responsável pelo envio do email
SmtpClient objSmtp = new SmtpClient();

//endereço do servidor SMTP(para mais detalhes leia abaixo do código)
objSmtp.Host = "smtp.seuservidor.com.br;"

//para envio de email autenticado, coloque login e senha de seu servidor de email
//para detalhes leia abaixo do código
objSmtp.Credentials = new NetworkCredential("login", "senha");

//envia o email
objSmtp.Send(objEmail);

Obs. Substitua os endereços de emails de exemplo acima pelos pelos emails reais.

Dica: Coloque o código c# acima no evento do seu botão. Por exemplo, pra quando o usuário clicar em Enviar. Para isso basta dar dois cliques no seu botão no modo DESIGN do Visual Studio.

Servidor SMTP. Para enviar email com Asp.Net é importante que você possua um servidor SMTP. Geralmente o provedor no qual seu site está hospedado possui o servidor SMTP, neste caso, basta pedir o endereço do mesmo.

SMTP Autenticado: Alguns provedores exigem autenticação para envio de email(consulte seu provedor de hospedagem). Nesses casos você deve criar uma conta de email padrão(por exemplo, voce@seusite.com.br) e configurar no código c# acima o nome de usuário e senha deste email para envio autenticado.

SMTP Sem autenticação: Alguns provedores não exigem autenticação para envio de email(consulte seu provedor de hospedagem). Neste caso não é necessário ter um email padrão(por exemplo, voce@seusite.com.br) e também não precisa colocar usuário e senha no código acima.

24 Comentários


  1. Gostei muito dos tutoriais, mas acho que ficou faltando acrescentar um “objSmtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;” no tutorial de envio de e-mails, pois ocorria erro quando o e-mail é enviado para um e-mail de outro domínio. Parabéns pelo site! Já me ajudou muito!

    Responder

  2. Poxa venho por meio deste comentario deixar os meus sinceros parabens e muito obrigado pelas ajudar que este seu site pode me fornecer. Muito direto em seus exemplos, valeu mesmo.

    Responder

  3. Olá, estou fazendo um projeto em ASP.NET com C# e vou utilizar este código para enviar os e-mails. Só que não estou entendendo uma coisa, o servidor SMTP é o site onde estou trabalhando?

    Responder

  4. Muito bom … vou fazer meus testes …
    muito obrigado por disponibilizar seu tempo a nos ajudar . 😉

    Responder

  5. Olá Cesar tudo bem? tenho um formulário de cadastro, e um botão finalizar cadastro, como utilizo essa classe no final deste cadastro? bode fazer um topido destes? muita gente procura… abraços!!!

    Responder

    1. Olá Vinicius. Para fazer isso, você deve colocar um OnClick no botão e chamar a função responsável pelo envio.
      Por exemplo: OnClick=”btnEnviar_Click”
      No C#:
      protected void btnEnviar_Click(object sender, EventsArgs e){
      //código
      }
      Para recuperar os dados dos TextBox’s e enviar por e-mail utilize: TextBox_Name.Text por exemplo. Onde “TextBoxName” é o ID do TextBox.

      Abraço.

      Responder

  6. MailMessage objEmail = new MailMessage();

    O meu está dando erro nesta linha. E obiviamente dá erro nas outras também
    Alguém pode me ajudar??

    Responder

    1. Olá Microzapple, você está utilizando os devidos using’s no topo do código?

      Responder

  7. Está ai o código

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Net.Mail;
    using System.Net;

    namespace CamadaDeNegocio
    {
    public class EnviarEmail
    {
    protected void enviarEmail
    {
    //crio objeto responsável pela mensagem de email
    MailMessage SendEmail = new MailMessage();
    //rementente do email

    EnviaEmail.From = new MailAddress(“microzapple@gmail.com”);
    //email para resposta(quando o destinatário receber e clicar em responder, vai para:)
    EnviaEmail.ReplyTo = new MailAddress(“oziel.guimaraes.sites@gmail.com”);
    //destinatário(s) do email(s). Obs. pode ser mais de um, pra isso basta repetir a linha
    //abaixo com outro endereço
    objEmail.To.Add(“oziel.guimaraes@infouniron.com”);
    //se quiser enviar uma cópia oculta pra alguém, utilize a linha abaixo:
    objEmail.Bcc.Add(“ozielagenda@provedor.com.br”);
    //prioridade do email
    objEmail.Priority = MailPriority.Normal;
    //utilize true pra ativar html no conteúdo do email, ou false, para somente texto
    objEmail.IsBodyHtml = true;
    //Assunto do email
    objEmail.Subject = “Assunto”;
    //corpo do email a ser enviado
    objEmail.Body = “Conteúdo do email. Se ativar html, pode utilizar cores, fontes, etc.”;
    //codificação do assunto do email para que os caracteres acentuados serem reconhecidos.
    objEmail.SubjectEncoding = Encoding.GetEncoding(“ISO-8859-1”);
    //codificação do corpo do emailpara que os caracteres acentuados serem reconhecidos.
    objEmail.BodyEncoding = Encoding.GetEncoding(“ISO-8859-1”);
    //cria o objeto responsável pelo envio do email
    SmtpClient objSmtp = new SmtpClient();
    //endereço do servidor SMTP(para mais detalhes leia abaixo do código)
    objSmtp.Host = “smtp.gmail.com;”
    //para envio de email autenticado, coloque login e senha de seu servidor de email
    //para detalhes leia abaixo do código
    objSmtp.Credentials = new NetworkCredential(“login”, “senha”);
    //envia o email

    objSmtp.Send(objEmail);
    }
    }
    }

    Responder

  8. Alguem pode me ajudar eu estou criando um formulario em cshtml e gostaria que os dados deles fosse enviado para meu email. gostaria de um ajuda eu estou fazendo em mvc4 vs 2012 por favor

    Responder

  9. Bom dia, eu não entendo nada de asp.net .. sei um pouco sobre HTML ..

    Consigo aproveitar esse seu código para usar com asp.net?

    Eu quero criar dois textbox para o cliente inserir e-mail e um botão para enviar esses e-mails, é possível? Será que podeme ajudar?

    E-mail PARA (TO): teste@gmail.com

    E-mail COPIATÁRIO (CC): teste1@gmail.com

    Enviar E-mail

    Responder

  10. Este foi o único jeito que o envio de e-mail funcionou na minha aplicação.

    Obrigado!

    Responder

  11. Eae cara vc poderia me tirar uma dúvida eu fiz certo igual vc porém ele da um erro , eu nao entendi aquela parte do Smtp , poderia me ajudar a saber oque eu coloco certinho la, estou colocando o localhost mas nao esta dando certo, obrigado desde ja

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*