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:
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..