VB.NET - Enviando E-mails


E cá estamos nós em mais um artigo sobre como enviar e-mails ; desta vez veremos como fazer isto usando o VB.NET .  Na plataforma .NET o envio de e-mail é feito usando o protocolo SMTP -  Simple Mail Transfer Protocol - pois este é o serviço que o IIS - Internet Information Server - utiliza.( O SMTP utiliza a porta 25, HTTP escuta a porta 80)

Obs: Quando um programa de transferência de correio contata um servidor em uma máquina remota ele forma uma conexão TCP para se comunicar e , os programas seguem o SMTP que faz parte da suite TCP/IP.

Para enviar um e-mail usando o protocolo SMTP e o VB.NET , vamos usar a classe - System.Web.Mail -  e você vai precisar especificar os métodos e propriedades conforme abaixo :

From Origem
To Destino
Cc Com cópia para
Bc com cópia oculta
Subject Assunto
Body Corpo do e-mail
BodyFormat formato do e-mail
Attachments.Add Arquivos anexados
Send Enviar o e-mail

Vamos criar um projeto no Visual Studio .NET do tipo Asp.Net Web Application conforme o layout abaixo :

 - O formulário - webform1.aspx possui os seguintes controles:
  • 4 labels
  • 4 TextBox - Textobox1,Textbox2,TextBox3 e TextBox4(Multiline=True)
  • 1 Button - Button1

- Vamos incluir também dois controles RadioButton : Radiobutton1 e RadioButton2

- Vamos preencher a propriedade Text de cada controle conforme o layout abaixo:

Agora o código do projeto: (Estou mostrando apenas o código mais importante.)

Imports System.Web.Mail

Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents Label2 As System.Web.UI.WebControls.Label
Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
Protected WithEvents Label3 As System.Web.UI.WebControls.Label
Protected WithEvents TextBox3 As System.Web.UI.WebControls.TextBox
Protected WithEvents Label4 As System.Web.UI.WebControls.Label
Protected WithEvents TextBox4 As System.Web.UI.WebControls.TextBox
Protected WithEvents RadioButton2 As System.Web.UI.WebControls.RadioButton
Protected WithEvents RadioButton1 As System.Web.UI.WebControls.RadioButton
Protected WithEvents Button1 As System.Web.UI.WebControls.Button

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked Then
   Dim MandaEmailSimples As New MailMessage()
   Dim origem, destino, titulo, assunto As String
   origem = TextBox1.Text.ToLower.Trim()
   destino = TextBox2.Text.ToLower.Trim()
   titulo = TextBox3.Text.Trim()
   assunto = TextBox4.Text.Trim()
   SmtpMail.Send(origem, destino, titulo, assunto)
Else
   Dim MandaEmailAnexos As New MailMessage()
   With MandaEmailAnexos
     .From = TextBox1.Text.ToLower.Trim
     .To = TextBox2.Text.ToLower.Trim
     .Subject = TextBox3.Text.Trim
     .Body = "<HTML><Body>" & TextBox4.Text.Trim() & "</body></html>"
     .BodyFormat = MailFormat.Html
     .Priority = MailPriority.High
     .Attachments.Add(new MailAttachment("c:\teste\carta.txt"))
   End With
   SmtpMail.Send(MandaEmailAnexos)
End If
End Sub
End Class
 

O código permite o envio de dois tipos de e-mails : E-Mail Simples e E-Mail com arquivo anexos:

Apenas verificamos qual opção o usuário selecionou em - If RadioButton1.Checked Then  - para então preparar o e-mail para envio conforme os dados informados pelo usuário. O arquivo anexo esta sendo incluído direto no código mas você pode incluir um controle TextButton para poder informar qual arquivo deseja enviar em anexo.

O método Smtp.Send é que efetivamente envia o E-mail e a propriedade Attachements.Add é que permite um arquivo anexo.

Note que a primeira linha de código é  - Imports System.Web.Mail - que referencia a classe e-Mail.

Acabou...

Muito simples , não é mesmo...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti