Olá! Vou mostrar aqui como enviar e-mails de forma segura utilizando o protocolo SSL com acesso a banco de dados. Uma aplicaçãozinha simples de envio de e-mail que poderá ser personalizada para suas necessidades.
Secure Sockets Layer (SSL) é uma implementação popular da criptografia de chave-pública. É um protocolo de segurança utilizado por navegadores de Internet e servidores web para transmitir informações sigilosas.
Para a sua aplicação enviar e-mail SSL, o servidor tem que estar configurado para isso. Mas para os estudos utilizaremos o Gmail que utiliza o protocolo SSL para o envio de e-mails. As configurações do SMTP do Gmail estão disponíveis no endereço:
<mailSettings>
</smtp>
</mailSettings>
</appSettings>
Faremos uma classe chamada de Email.cs. Uma classe especialista para tratar apenas de assuntos relativos ao tratamento e envio de e-mails.
{
public static bool EnviarEmail(string destinatario, string msg)
{
//Instanciar as classes que usaremos para enviar o e-mail SSL
//================================
//Instanciação dos objetos de Endereços de e-mail
MailAddress mailAdressTo = new MailAddress(destinatario);
MailAddress mailAdressFrom = new MailAddress(ConfigurationManager.AppSettings["emailfrom"]);
//instanciamos a mensagem
MailMessage mail = new MailMessage(mailAdressFrom, mailAdressTo);
//Instanciaremos a classe SmtpClient que nos permitirá enviar e-mail via protocolo SMTP com o SSL habilitado
SmtpClient smtpClient = new SmtpClient();
//Preenchendo o objeto mail
mail.Subject = "Configurando E-mail SSL";
mail.Body = msg;
//Configurando o objeto cliente SMTP
//==================================
//Habilitando o SSL (AQUI É O PULO DO GATO)
smtpClient.EnableSsl = true;
try
{
smtpClient.Send(mail);
return true;
}
catch (Exception)
{
return false;
throw ;
}
}
}
Chamada da função de envio de e-mail
protected void btnEnviar_Click(object sender, EventArgs e)
{
// a função de envio de e-mail retornará um boolean indicando se o e-mail foi enviado ou não
if (Email.EnviarEmail(txtEmail.Text, txtMensagem.Text))
{
lblStatus.Text = "E-mail enviado com sucesso.";
}
else
{
lblStatus.Text = "Problemas no envio do E-mail.";
}
}
Tela da aplicação
Nenhum comentário:
Postar um comentário