Enviando e-mails com a namespace System.Net.Mail
Enviar e-mails em .NET é uma tarefa bastante simples e rápida. Para enviar emails em .NET você deve importar a namespace que contém as classes, os métodos e propriedades que fazem este serviço. Na versão anterior da .Net Framework (versão 1.1) usávamos as classes do namespace System.Web.Mail. Na versão 2.0 agora temos novas classes que estão presentes no namespace System.Net.Mail
Neste artigo demonstraremos como usar a namespace System.Net.Mail para enviar e-mails através de um projeto ASP.Net utilizando o VB.Net. Para começar então, crie um novo WebSite: File -> New WebSite. No Design da nossa página Web insira uma tabela com algumas linhas e alguns componentes: Button,TextBox e Label de forma que o formulário de envio de e-mail fique semelhante a figura abaixo:
Figura 1 – Formulário para Envio de E-mail no ASP.Net.
Em .Net para enviar um e-mail vamos utilizar de duas classes do namespace System.Net.Mail:
· MailMessage que representa um mensagem de E-mail e Possui as propriedades: From(Remetente), To(Para), Subject(Assunto), Body(Corpo da Mensagem), etc.
· SmtpClient - Envia um objeto MailMessage para um servidor SMTP que enviará a mensagem ao destinatário.
A System.Net.Mail contém ainda classes que permitem a utilização de funcionalidades avançadas como: anexos, informações de autenticação de servidor SMTP, etc.
Vamos agora a codificação a ser feita para enviar e-mail. Antes de tudo é necessário importar a namespace a ser utilizada: Imports System.Net.Mail
O próximo passo será codificar o evento click do botão Enviar. Primeiro vamos criar um objeto MailMessage e atribuir ao objeto as propriedades pertinentes ao Email (remetente, destinatário,copia, copia oculta, assunto, e mensagem). Veja na figura abaixo a configuração da mensagem de e-mail a ser enviada.
'Cria um objeto do tipo Mail Message que contém as informações do e-mail
Dim Email As New MailMessage
'remetente
Email.From = New MailAddress(txtDe.Text)
'destinatario
Email.To.Add(txtPara.Text)
'destinatario de copia do email
Email.To.Add(txtCc.Text)
'destinatario de copia oculta
Email.Bcc.Add(txtCco.Text)
'prioridade de envio
Email.Priority = MailPriority.High
'formato do email
Email.IsBodyHtml = True
'assunto do email
Email.Subject = txtAssunto.Text
'mensagem do email
Email.Body = txtMensagem.Text
Figura 2 – Configuração da Mensagem de E-mail.
Em seguida vamos criar um objeto SmtpClient e definir as configurações sobre o servidor SMTP, e por ultimo chamar o método Send para enviar o E-mail. Não esqueça de informar um servidor SMTP válido na propriedade Host e configurar suas informações de autenticação que podem ser feitas via webConfig, conforme a figura 4. Veja na figura abaixo:
'cria o objeto SMTP
Dim Smtp As New SmtpClient
Smtp.Host = "INFORME AQUI O ENDERECO IP DO SERVIDOR"
Smtp.Port = 25
Try
'envia o email
Smtp.Send(Email)
'envia um alerta ao usuario que o e-mail foi enviado com sucesso
Dim script As String = "<script>alert('Email Enviado com sucesso!');</script>"
ClientScript.RegisterClientScriptBlock(Me.GetType, "clientScript", script)
Catch ex As Exception
'envia um alerta ao usuario que o e-mail foi enviado com sucesso
Dim script As String = "<script>alert('Houve um erro ao enviar o e-mail!');</script>"
ClientScript.RegisterClientScriptBlock(Me.GetType, "clientScript", script)
Finally
'chama o metodo LimparCampos para limpar os campos do formulario
LimparCampos()
End Try
Figura 3 – Enviando o E-mail.
<configuration>
<system.net>
<mailSettings>
<smtp>
<network host="SERVIDOR" port="25" userName="usuario" password="senha" />
</smtp>
</mailSettings>
</system.net>
Figura 4 – Configurações para autenticação no servidor SMTP
Chegamos ao final desse artigo. Até a próxima oportunidade.