Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Enviando e-mail no Asp.NET usando o provedor GMAIL

Como enviar e-mail por uma página Aspx, utilizando C#.

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

 





    4 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Claudio Medeiros Dos Santos

Excente dica de envio de email, vou utilizar nos meus projetos, só que utilizando a linguagem VB.



em 29/4/2009 06:41 - Responder

 

[Comentário do autor]   Nelson Borges
Valeus Claudio, ao infinito e além com conhecimento.. obrigado pelas palavras.


em 7/7/2009 00:39 - Responder
 

Isabela Colucci
Olá, pessoal!

Sou novata em .Net.
Estou utilizado o VisualStudio 2010, pois é o disponibilizado na faculdade.

Eu segui o tutorial e, apesar de não ter nenhum erro durante a complicação, o sistema retorna o seguinte erro na execução do método enviarButton_Click:

"Ocorreu um erro ao enviar:Command not implemented. The server response was: 5.5.1 Unrecognized command. u1sm605246ybe.12"

Alguém poderia me ajudar?


Grata.
Isabela Colucci.


em 25/6/2010 16:02 - Responder

 

  Isabela Colucci
Foi só trocar o client.EnableSsl para false.


em 25/6/2010 16:25 - Responder
 



[Este post ainda não foi associado a uma sequência]
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03