Orientação a Objetos com Visual Studio.NET (parte 2)


por Mauricio Junior em 1/1/2011 0

Olá pessoal, como foi dito no primeiro artigo, essa segunda parte será bem simples. Mostra que depois do cadastro do usuário é enviado um e-mail automaticamente. Antes de tudo irei criar duas novas classes para o projeto. Uma se chamará ConstantesSistema.cs e a outra EnviaEmail.cs.

 

Requisitos:

- Visual Studio .NET 2005

- Ler o a primeira parte do artigo.

 

A primeira classe armazena as variáveis do sistema para enviar e-mail.

A segunda classe terá dois métodos para enviar e-mail automaticamente.

A classe EnviaEmail.cs estende da classe ConstantesSistema.cs, ou seja, todas as variáveis e métodos criados na classe estendida poderá ser acessado e usado na classe de e-mail.

 

Referência: 1.1

 

As duas classes circuladas na figura 1.1 mostra que serão usadas neste artigo.

Seguindo com o sistema, a figura 1.2 é mostrada apenas as variáveis.

 

 

 Referência: 1.2

 

Segue a descrição abaixo para facilitar a copia.

 

 

public class ConstantesSistema

{

      public string MAIL_DE = "EMAIL QUE IRÁ ENVIAR";

      public string PW_DE = "SENHA DO EMAIL";

      public string SMTP_MAIL = "SMTP DO SERVIDOR DE EMAIL";

      public string SMTP_AUT = "1";

}

 

Referência: 1.3

Explicando as variáveis:

 

MAIL_DE é o e-mail que estará no campo e-mail de. Imagine mandando um e-mail, sempre o seu e-mail estará no campo e-mail de.

PW_DE é a senha do e-mail que enviará.

SMTP_MAIL é o smtp do servidor de e-mail que tens, por exemplo, smtp.terra.com.br.

SMTP_AUT é o tipo da autenticação, ou seja, numero 1.

 

É bem simples a classe ConstantesSistema.cs.

 

 

Referência: 1.4

 

Continuando com o artigo e indo para a classe de E-mail, irei inserir dois métodos, um para autenticar e outro para enviar o e-mail propriamente dito.

 

 

 

Referência: 1.5

 

A figura 1.5 mostra o método que envia e-mail. Analisando a assinatura do método, veja que não retorna valor algum e espera quatro parâmetros de entrada. Segue o código.

 

 

/// <summary>

      /// Envia e-mail automaticamente

      /// </summary>

      /// <param name="usuarioNome"></param>

      /// <param name="usuarioEmail"></param>

      /// <param name="descricaoEmail"></param>

      /// <param name="tituloEmail"></param>

      public void enviarEmail(string usuarioNome, string usuarioEmail,

                        string descricaoEmail, string tituloEmail)

      {

            try

            {

                  MailMessage mail = new MailMessage();

                  mail.From = MAIL_DE;

                  mail.To = usuarioEmail;

                  mail.Subject = tituloEmail;

                  mail.BodyFormat = MailFormat.Html;

 

                  mail.Body = descricaoEmail;

 

                  getAutenticacao(mail);

 

                  SmtpMail.SmtpServer = SMTP_MAIL;

                  SmtpMail.Send(mail);

 

            }

            catch (Exception e)

            {

                  throw new Exception(e.Message);

            }

      }

 

Referência: 1.6

 

Explicando os parâmetros de entrada:

usuarioNome: é o nome do usuário que receberá o e-mail.

usuarioEmail: é o e-mail do usuário que irá receber.

descricaoEmail: é a descrição do e-mail que irá ao corpo da mensagem.

tituloEmail: é o titulo que irá no e-mail enviado.

 

Isso tudo, usarei dentro do bloco try do método. O método catch pega o erro que ocorrer. Primeiro instancio o método da classe using System.Web.Mail; chamado MailMessager. O nome da variável chama-se mail. Portanto uso-a para atribuir os parâmetros e valores em seus respectivos campos.

 

 

try

            {

                  MailMessage mail = new MailMessage();

                  mail.From = MAIL_DE;

                  mail.To = usuarioEmail;

                  mail.Subject = tituloEmail;

                  mail.BodyFormat = MailFormat.Html;

 

                  mail.Body = descricaoEmail;

 

                  getAutenticacao(mail);

 

                  SmtpMail.SmtpServer = SMTP_MAIL;

                  SmtpMail.Send(mail);

 

            }

 

Referência: 1.7

 

Não esqueça de que uso as variáveis da classe constantesSistema. Isso economiza muita coisa, se o e-mail ou senha ou smtp mudar, apenas será mudado em um local, ou seja, na classe ConstantesSistema.cs.

A linha que está em amarelo é um outro método que serve para autenticar a mensagem que será enviada.

 

 

 

 

private void getAutenticacao(MailMessage mail)

      {

            mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = SMTP_AUT;

            mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = MAIL_DE;

            mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = PW_DE;

      }

 

Referência: 1.8

 

 

Veja que estou usando as variáveis da outra classe.

Pronto, agora já foram criadas as duas classes que precisava para enviar e-mail automaticamente.

 

Referência: 1.9

 

 

Vá para a classe Default.aspx e depois que o cadastro foi feito, dentro do bloco if instancie o método da classe de e-mail passando os parâmetros. Veja como ficará o mesmo abaixo.

 

 

 

 

protected void cmbGravar_Click(object sender, EventArgs e)

      {

            usuarioDAO dao = new usuarioDAO();

            usuarioDTO dto = new usuarioDTO();

 

            setValores(dto);

 

            if (dao.insereUsuarioDAO(dto))

            {

                  EnviaEmail sEmail = new EnviaEmail();

                  sEmail.enviarEmail(txtNome.Text, txtEmail.Text, "Obrigado pelo cadastro", "Cadastro realizado com sucesso ");

                  Response.Redirect("resultadoFinal.aspx");

            }

            else

            {

                  Response.Redirect("resultadoFinalErro.asp");

            }

      }

 

Referência: 1.10

 

As linhas que estão de amarelo é o que foi acrescentado.

Executando o código, irei fazer um cadastro e ver se o e-mail chegou.

 

Referência: 1.11

 

 

 

Referência: 1.12

 

Veja que chegou o e-mail em minha caixa postal.

 

 

 

 

 

 

Referência: 1.13

 

Espero que tenham gostado.

Meu nome é Mauricio Junior e estou à disposição para tirar dúvidas.

 

Mauricio Junior

mauricio@ascompras.com

 

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:
Comentado por: Edilson - 1/2/2007 11:18:19
Eu preciso usar o método "getAutenticacao" em uma intranet? Na verdade, como funciona esse método? Grato.
Comentado por: Allan - 8/11/2007 17:06:12
No artigo anterior havia informado que disponibilizaria o link para download.

Ainda ira postar?

Obrigado

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Windows Phone no Brasil
Vídeos Online Gratuitos
E-mail Carta de Amor - Vírus
Sistema de Login em ASP – Parte 10
Web Administration Tool
Sistema de Login em ASP Utilizando três camadas - Parte VIII
Teclas de atalho - Visual Studio .NET 2005
Deixando o componente ASP:MENU compatível com qualquer browser
Trabalhando com GridView, RowCommand e DataKeysNames
Vídeo: Série Atlas.NET - Parte III
Ophone The Microsoft - Vídeo
Windows Form - Retornando valor entre formulários
Resources como padrão de mensagens
Vírus - Telegrama Eletrônico
Padrões de nomenclaturas
IsAlpha
iMove Developer: chegou para te ajudar
Windows Phone 7 e DLNA
URL Indexável – Reescrever URL de uma forma amigável
Utilizando ASP:Menu
Utilizando o GridView e DetailsView
Sistema Calcula IMC e IGC no Celular
VSTS 2008
Como criar uma tabela dinâmica com ASP.NET
Chamando Programas de Dentro do Windows Forms
ReportViewer sem DataSet Tipado e gerando PDF
Contagem Regressiva com C# e JavaScript
Vídeo: Windows Phone com Windows Mobile 7
Visual SourceSafe - Série 5
Agrupando e-mails no Hotmail
Escrever log de erro e warning
LG Optimus 7 com Windows Phone 7
URL do WebService Dinâmica
Vídeo - Serviços do Windows Live
Trabalhando com Session