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