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 Sub
Ao final dessa rotina, seus e-mails estarão todos enviados. Até a próxima, Luciano Reis.