Neste curto artigo estarei demonstrando com enviar e-mail através de uma página ASP.NET utilizando o provedor Gmail, este artigo têm como foco estudantes que estão iniciando em desenvolvimento de sistemas.

Requisitos para o Exemplo: Neste nosso exemplo iremos usar o Visual Studio 2008 com Framework 3.5, caso não tenha instalado, efetue o download gratuitamente no seguinte site :  http://www.microsoft.com/Express/

Primeiramente abra o Visual Studio 2008, vá em File -> New -> Project, na tela de New Project escolha o projeto de C# -> Web,o nome do projeto e da solução deixe como SendMail, conforme imagem abaixo(Imagem1).

Imagem1 – New Project

Agora vá em Solution Explorer e veja os itens que o Visual Studio criou, procure o arquivo Default.aspx e dê um duplo clique nele. A página irá abrir em branco insira os seguintes controles dentro da página conforme tabela abaixo.

Nota: (Procure os controles na aba ToolBox se a mesma não estiver visível pressione CTRL+ALT+X)

  

Controle

Propriedades

Observação

TextBox

- Altere a propriedade ID do controle para “destinatarioTextBox”;

É importante sempre que inserir um controle na pagina um nome simples e objetivo para que o mesmo possa ser localizado facilmente no código.

TextBox

- Altere a propriedade ID do controle para “mensagemTextBox”;

- Altere a propriedade TextMode para multiline;

 

Button

- Altere a propriedade ID do controle para “enviarButton”;

Este será o botão responsável por disparar o evento que irá chamar o envio do e-mail.

Label

- Altere a propriedade ID do controle para “RespostaEnvioLabel”;

- Altere a propriedade Visible para false;

Esta Label irá receber a mensagem se o envio foi executado com sucesso ou não, esta mensagem irá aparecer somente depois do envio.

 

Veja um exemplo abaixo da imagem2 de como deverá  ficar sua página:

Imagem2 – Página
 
Clique com o botão direito do mouse em qualquer ponto da página e escolha a opção ViewCode, no topo do código faça a inserção das seguintes linhas (abaixo) .

using System.Net.Mail;

using System.Net.Configuration;

 

Volte para o arquivo Default.aspx e dê um duplo clique no botão enviar e insira o código abaixo dentro do evento enviarButton_Click:

 

string remetenteEmail = "nbsjunior@gmail.com"; //O e-mail do remetente

            MailMessage mail = new MailMessage();

            mail.To.Add(destinatarioTextBox.Text);

            mail.From = new MailAddress(remetenteEmail, "Nelson Borges", System.Text.Encoding.UTF8);

            mail.Subject = "Assunto:Este e-mail é um teste do Asp.Net";

            mail.SubjectEncoding = System.Text.Encoding.UTF8;

            mail.Body = mensagemTextBox.Text;

            mail.BodyEncoding = System.Text.Encoding.UTF8;

            mail.IsBodyHtml = true;

            mail.Priority = MailPriority.High; //Prioridade do E-Mail

 

            SmtpClient client = new SmtpClient();  //Adicionando as credenciais do seu e-mail e senha:

            client.Credentials = new System.Net.NetworkCredential(remetenteEmail, "digiteAquiSuaSenhaGmail");

 

            client.Port = 587; // Esta porta é a utilizada pelo Gmail para envio

            client.Host = "smtp.gmail.com"; //Definindo o provedor que irá disparar o e-mail

            client.EnableSsl = true; //Gmail trabalha com Server Secured Layer

            try

            {

               client.Send(mail);

               respostaEnvioLabel.Text = "Envio do E-mail com sucesso";

               respostaEnvioLabel.Visible = true;

            }

            catch (Exception ex)

            {

                respostaEnvioLabel.Text = "Ocorreu um erro ao enviar:" + ex.Message;

                respostaEnvioLabel.Visible = true;

            }

 

Vamos à explicação do código acima: Para o envio do e-mail é necessário a utilização do namespace System.Web.Mail, para mais detalhes acesse: http://msdn.microsoft.com/en-us/library/system.web.mail.aspx dentro deste namespace você irá encontrar as várias classes relacionadas ao envio de e-mail:

MailMessage – Classe usada para criar e manipular o conteúdo de mensagem, no nosso exemplo instanciamos esta classe com o nome de mail (MailMessage mail = new MailMessage();).

Bom agora que entendemos o MailMessage vamos continuar com a explicação de cada linha do código que inserimos:

mail.To: Nesta linha estamos adicionando o valor do texto digitado na textbox destinatário, esta valor esta sendo passado para a propriedade  To do mail através do método Add.

mail.From: Aqui estamos definindo o  endereço de origem (remetente) que utilizaremos para enviar a apresentação do e-mail, no nosso caso usamos o MailAddress que é uma classe da System.Web.Mail usada para especificar o endereço de e-mail, exibição do nome no e-mail etc.

mail.Subject: Nesta linha estamos adicionando o assunto do e-mail.

mail.Body: Aqui estamos adicionando o conteúdo digitado no textbox mensagem ao corpo do e-mail.

mail.IsBodyHtml: Aqui definimos que o corpo da mensagem será um HTML, esta definição é um valor booleano ou seja true para verdade e false para falso.

mail.Priority: Você pode definir a prioridade do e-mail através desta propriedade.

No nosso exemplo estamos enviando um e-mail através do SMTP, existem outras formas que não serão tratadas neste artigo, dentro do namespace Sytem.Web.Mail existe também a classe SmtpClient que irá permitir o envio do e-mail, mais detalhes acesse: http://msdn.microsoft.com/pt-br/library/system.net.mail.smtpclient.aspx

client.Credentials: Após instanciar a classe SmtpClient, iremos definir algumas propredades, a primeira é a Credentials que irá validar o usuário e a senha no host (provedor de e-mail no nosso caso o Gmail), repare que usamos as credencias  a classe da System .Net chamada NetworkCredential , esta classe fornece credenciais para esquemas de autenticação baseada em senhas como NTLM e Kerberos, mas detalhes acesse:  http://msdn.microsoft.com/pt-br/library/system.net.networkcredential.aspx

client.Port: Aqui você irá definir a porta de saída do e-mail, como default é a porta 25, porém no provedor de SMTP do Gmail é utilizado a porta 587, a definição da porta é muito importante estar correto pois o envio do e-mail pode falhar por isso.

client.Host: O Host é provedor do serviço de e-mail, no nosso caso o Gmail, para outros provedores, é necessário conhecer o endereço de configuração do smtp, que neste artigo é “smtp.gmail.com”.

client.EnableSsl: Esta propriedade define se iremos utilizar o SSL para criptografar o e-mail.

client.Send: Este é método é responsável pelo envio do e-mail (MailMessage) que configuramos acima.

Finalizando o artigo, você agora pode efetuar um teste com sua nova página de envio de e-mails, basta apertar F5 no Visual Studio preencher os dados e clicar em enviar...

 

Até mais..