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)
//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.
Link permanente
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!
Link permanente
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.
Link permanente
Obg, me salvou, estava so faltando isso no meu trabalho!
Vlw msm!
Link permanente
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?
Link permanente
Muito bom … vou fazer meus testes …
muito obrigado por disponibilizar seu tempo a nos ajudar . 😉
Link permanente
Eu que agradeço por acessar o blog. Abraço 🙂
Link permanente
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!!!
Link permanente
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.
Link permanente
Tem limite de envio?
Link permanente
O limite depende do seu servidor.
Link permanente
MailMessage objEmail = new MailMessage();
O meu está dando erro nesta linha. E obiviamente dá erro nas outras também
Alguém pode me ajudar??
Link permanente
Eu preciso de um site de noticias em asp.net e SQL 🙂
Preciso enviar imagens, e salvar o caminho no banco.etc
Link permanente
Olá Microzapple, você está utilizando os devidos using’s no topo do código?
Link permanente
sim estou usando os três using
using System.Net;
using System.Text;
using System.Net.Mail;
Link permanente
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);
}
}
}
Link permanente
Como Implemento em mvc4, por favor.
Link permanente
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
Link permanente
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
Link permanente
Muito bom cara, me ajudou bastante.
Funcionou de primeira.
Link permanente
Excelente post! Obrigado por compartilhar conhecimento…
Link permanente
Parabéns, cara! Funcionou perfeitamente! Simples e prático.
Link permanente
Este foi o único jeito que o envio de e-mail funcionou na minha aplicação.
Obrigado!
Link permanente
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
Link permanente
Muito bom, vou tentar implementar em meu projeto. Obrigado.