Uma das funcionalidades mais utilizadas no .Net, principalmente em empresas, é o envio de e-mail. Existem algumas maneiras de serem feitas, o que irei demonstrar neste post é utilizando o componente nativo do .Net, que é muito simples de usar.

O diferencial deste post é que, no corpo da mensagem do e-mail, enviaremos um HTML, e não um texto qualquer. Isso é muito útil para empresas que disparam newsletter de promoções e/ou propagandas para seus clientes.

Então, vamos lá.

 

Desenvolvimento

 

Para iniciar, é necessário adicionar uma página nova em seu projeto, que será onde o usuário entrará com os dados do Destinatário da mensagem. No aspx dela, adicione o seguinte código:


 

 

O layout deve ficar com os seguintes campos:

Agora vamos criar o HTML que será enviado. Adicione no seu projeto um arquivo HTM/HTML, e adicione o seguinte código nele:


 

O layout dele deve ficar assim:

 

Eu uso por padrão palavras que devem ser trocadas por dados reais entre “<##>”, como é o caso no <#Nome#>. Mais para frente você entenderá o que quero dizer com isso.

Agora que o layout está ok, vamos adicionar o evento OnClick do botão Enviar, para que possamos colocar o código do envio de e-mail nele.

Selecione o botão no modo Layout, e dê dois cliques. Ele vai criar o evento automaticamente, tanto no aspx quanto na classe da tela aspx.cs.

 

 

Antes de começarmos a codificação, temos que colocar algumas configurações padrão no arquivo Web.config do projeto Web. Adicione o seguinte código:


 

Esse código adiciona as credenciais do e-mail que enviará as newsletters. Sem essa credencial o e-mail não vai funcionar, pois, é necessário informar o Host, usuário e senha do servidor que será responsável pelo envio.

No exemplo eu coloquei o Host do Gmail, pois, será o que eu utilizarei para enviar o e-mail de teste. Você pode colocar o Host do e-mail da sua empresa, ou de qualquer outro e-mail pessoal como Yahoo, Hotmail, etc.

Agora vamos para a codificação. Na classe da tela (aspx.cs), adicione no cabeçalho as seguintes importações:


 

Elas serão necessárias para o funcionamento correto. A System.Net e a System.Net.Mail são para conseguirmos usar a classe de envio de e-mail. A System.IO é para lermos o arquivo HTML através da classe File do .Net.

No evento OnClick no botão Enviar, adicione o seguinte código:


 

 

Vamos analisar linha por linha:

- As duas primeiras linhas, onde trata a string “newsletterText”, o sistema está lendo um arquivo, através da classe File, mapeando o diretório onde o HTML se encontra dentro do projeto.  Ele retorna o texto que o arquivo contém. No caso, retorna o texto do HTML inteiro;

- As duas próximas linhas, onde trata o dicionário “replaceValues”, é onde eu estou adicionando o texto que está no HTML, que eu quero alterar por algum outro dado. O dicionário funciona da seguinte forma: Dictionary<chave, valor>. Nesse caso, o texto “<#Nome#>” que tem no HTML é a chave, e eu quero trocar ele pelo texto que está no TextBox “Nome” da tela, do qual o usuário preencheu;

- Depois disso só informo qual será o assunto do e-mail; o e-mail do remetente e o e-mail do destinatário, conforme o usuário informar na tela.

- Após tudo informado, chamo o método que enviará, de fato, o e-mail.

 

Copie o seguinte método para sua classe:

 

Então vamos à explicação:

- As duas primeiras linhas, estamos ‘varrendo’ o dicionário, e alterando de fato (replace) os valores no HTML (newsletter), conforme a chave e o valor;

- Depois eu configuro com as informações necessárias da classe de E-mail, MailMessage;

- Depois configuro o Smtp. As linhas comentadas seriam necessárias se não tivesse a configuração no Web.config. Como já está configurado, deixei no código só para conhecimento;

- Depois é enviado o e-mail realmente.

 

Agora vamos ao teste. Execute seu projeto apertando o F5, e entre com as informações desejadas:

Clique no botão Enviar Newsletter e, assim que terminar de carregar a tela, verifique se o e-mail realmente foi enviado, verificando a caixa de entrada do e-mail destinatário (para testes, envie para seu próprio e-mail para garantir o funcionamento).

 

 

 

E aí está, o e-mail já com o nome que eu digitei.

 

Simples, né?

 

Finalização

 

O pessoal está bem habituado a enviar e-mail utilizando textos no corpo.  Acredito que, utilizando HTML da forma como apresentado aqui, fica muito melhor estruturado. Fora que é possível adicionar imagens no HTML e estilos (css) variados, para deixar o e-mail mais amigável.

Espero ter ajudado! :)

 

Aprofunde seus conhecimentos sobre este tema na comunidade ASP.NET

Exibições: 365

Comentar

Você precisa ser um membro de DevBrasil para adicionar comentários!

Entrar em DevBrasil

Comentário de Rodrigo de Azevedo Spinola em 23 setembro 2012 às 17:59

Muito bom não sabia dessa configurações de email pelo web config eu semopre as vazia manualmente peloc odigo.

Comentário de Marcelo Pereira da Silva em 21 setembro 2011 às 14:30
Otimo, ajudou e muito. Valeu!!!!
Comentário de Paulo Dias em 15 abril 2011 às 14:01
Nossa muito bom. Justo o que eu tava procurando !! Valeu.
Comentário de Sérgio Barros em 22 março 2011 às 15:38
Ótimo post, meus parabéns...
Comentário de Augusto Audrin em 15 fevereiro 2011 às 10:53
Parabéns! show a dica!
Comentário de Thiago Oliveira em 23 janeiro 2011 às 18:10

Muito bacana

Parabéns.

 

Comentário de Ailton Florencio de Souza em 22 janeiro 2011 às 21:40

Parabéns!

vlw pela dica

Comentário de Denilson Ribeiro em 21 janeiro 2011 às 11:23

Marcela, muito bom seu post.

Parabéns!

Comentário de Yan de Lima Justino em 19 janeiro 2011 às 8:18
Marcela, parabéns!!!! Um post muito útil.
Comentário de Michaell Dantas em 16 janeiro 2011 às 11:30

Bom, já dei os parabéns para Marcela no Blog dela, mas para não perder o custume, mais uma vez, parabéns pelo artigo, excelende didatica !!!

Valewww Marcela !!

 

© 2020   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço