Rotina simples demonstrando como fazer o envio de e-mails utilizando a linguagem VB.NET.
Enviar e-mail utilizando o .NET é muito simples e requer poucas linhas de código. No trecho abaixo vou exemplificar como executar tal atividade.
Para o nosso exemplo, teremos uma interface composta dos seguintes elementos:
Textboxes:
txtSMTPServer – Servidor de SMTP que será utilizado
txtSMTPLogin – Login no servidor SMTP
txtSMTPSenha – Senha no servidor SMTP
txtSMTPFrom – Meu nome para exibição
txtSMTPEMail – Meu endereço de e-mail
txtParaEMail – Endereço de e-mail do destinatário
txtParaNome – Nome para exibição no e-mail do destinatário
Checkbox:
chkSMTPAutentica – O servidor STMP requer autenticação?
Em primeiro lugar, devem ser instanciados alguns objetos:
Uma vez instanciados os objetos, vamos ao envio propriamente dito. Vou partir do princípio que estamos enviando uma mala direta, então o remetente será sempre o mesmo para diversos destinatários diferentes. Sendo assim, dentro da rotina de envio haverá um loop. Vamos começar a rotina:
O loop será feito, levando-se em consideração a existência de uma DataTable chamada MinhaTabela que possui os campos:
Nome – Nome para exibição do destinatário
EMail – E-mail do destinatátio
Dim Envio As New System.Net.Mail.SmtpClient
Dim Credencial As New System.Net.NetworkCredential
Private Sub EnviaEMail
Dim De As New System.Net.Mail.MailAddress(txtSMTPEMail.text,txtSMTPFrom.text)
For Each Linha As System.Data.DataRow in MinhaTabela.Rows
Dim Para As New System.Net.Mail.MailAddress(Linha("EMail"),Linha("Nome"))
Dim Mensagem As New System.Net.Mail.MailMessage(De, Para)
Mensagem.Subject = "Assunto da mensagem"
Mensagem.Body = "<h1>Isso é um <b>teste</b>!</h1>"
Mensagem.IsBodyHtml = True
Credencial.UserName = txtSMTPLogin.text
Credencial.Password = txtSMTPSenha.text
Envio.Host = txtSMTPServer.text
Envio.Credentials = Credencial
Try
Envio.Send(Mensagem)
Catch ex As Exception
Console.WriteLine("Algo fede")
End Try
Next
End SubAo final dessa rotina, seus e-mails estarão todos enviados. Até a próxima, Luciano Reis.