Orientação a Objetos com Visual Studio.NET (parte 2)
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.
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.
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.
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
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.