Olá pessoal,
Hoje vou postar como enviar e-mail através do VB.NET, o código esta comentado, então não será necessário explicar.
Antes de começar, no cabeçalho do código, onde ficam os Imports, coloque o seguinte importe para que nosso método de envio de e-mail possa funcionar.
Imports System.Net.Mail
Agora sim, o método para enviar o e-mail é este, logo abaixo:
Protected Sub send()
Dim objNovoEmail As New MailMessage
Dim objSmtp As New SmtpClient
'Adicionando o e-mail do remetente
objNovoEmail.From = New MailAddress(txtEmailRemetente.Text)
'Adicionando o e-mail do destinatário
objNovoEmail.To.Add(New MailAddress(txtEmailDestinatario.Text))
'Adiciona a prioridade do e-mail
objNovoEmail.Priority = MailPriority.High
'Adicionando o assunto ao atributo assunto
objNovoEmail.Subject = txtAssunto.Text
'Formato de e-mail em Html?
objNovoEmail.IsBodyHtml = True
'Inserir o corpo da mensagem no atributo Body
objNovoEmail.Body = txtMensagem.Text
'Configuração de tipagem da linguagem, para não aparecer caracteres estranhos na mensagem
objNovoEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
objNovoEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
'Adicionando os campos dos atributos da configuração do e-mail
'parametros necessários para envio de e-mail.
'Configuração do IP do servidor SMTP
'Por exemplo: smtp.mail.yahoo.com.br (EXEMPLO)
objSmtp.Host = txtServidorSmtp.Text
objSmtp.Port = txtPorta.Text
'Caso queira definir um tempo do timeout
'objSmtp.Timeout = 10
'Define se deve usar autenticação ou não
If txtUsuario.Text <> String.Empty And txtSenha.Text <> String.Empty Then
objSmtp.Credentials = New System.Net.NetworkCredential(txtUsuario.Text, txtSenha.Text)
End If
If txtUsuario.Text = String.Empty Then
objSmtp.UseDefaultCredentials = False
End If
'Habilitar SSL ou não?
objSmtp.EnableSsl = chkSSL.CheckState
'Enviando a mensagem por e-mail
Try
objSmtp.Send(objNovoEmail)
Catch ex As Exception
Throw ex
Finally
objNovoEmail.Dispose()
End Try
objNovoEmail.Dispose()
End Sub
Obs¹.: Atente-se que em alguns trechos de código os atributos estão recebendo alguns TextBox, que são do meu form (formulário visual).
No seu formulário (form) deverá ter um botão de enviar, que deverá colocar o seguinte código para chamar o método send().
Obs².: Atente-se que o código que deverá ser inserido no seu botão começa à partir do comando Try até o End Try.
Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
Try
send()
MessageBox.Show("E-mail enviado com sucesso!", "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Falha!" & ex.ToString, "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Logo abaixo, um screen do projeto que fiz como teste, caso tenham dúvidas utilizem o campo para comentários que tentarei responder à todos da melhor forma possível.
Um abraço e bom estudo.
Cesar,
ResponderExcluirComo faço para anexar um arquivo neste caso?
Olá,
ResponderExcluirExiste um atributo de Anexo no objeto do e-mail, basta você preenche-lo com o caminho do anexo.
Fazendo desta forma eu consegui anexar apenas um arquivo por e-mail.
[]'s
Cesar:
ExcluirÉ possível inserir uma imagem (LOGO) no corpo do texto ?
César,
ResponderExcluirComo pular linha no texto do e-mail, nos testes que fiz ao passar pelo objNovoEmail.Body o texto vira uma linha unica, poderia ajudar?
Obrigado.
Olá Cristian,
ResponderExcluirVeja se o objeto objNovoEmail possui algum atributo referente a Html, acredito que se habilita-lo (caso exista) as mensagens serão enviadas no formato html, caso ainda não dê certo, tente enviar uma mensagem utilizando tags de codificação html, e ao receber o e-mail veja se ele deu as quebra de linhas através do < br >.
Um abraço!
As tags de html funcionam e permitem inclusive a criação de um modelo formatado para a mensagem, obrigado!
ResponderExcluirDe nada, mas resolveu o seu problema?
ResponderExcluirAbraço!
Problema resolvido, obrigado!
ResponderExcluirDe nada!
ResponderExcluirMuito obrigado pelo codigo. Vlw msm
ResponderExcluirDe nada, precisando de ajuda estamos aí!
ResponderExcluirMeu orgulho esse menino !
ResponderExcluirCésar, preciso anexar arquivo no meu site. o usuário vai anexar um curriculum, estou usando asp:FileUpload. como anexar esse arquivo no código acima?
ResponderExcluirObrigada
Para enviar como html sem precisar editar muita coisa coisa no codigo ou alterei o campo objNovoEmail.Body para o seguinte.
ResponderExcluirobjNovoEmail.Body = Replace(txtMensagem.Text, Chr(13), "
")
Funcionou 300%.
Para enviar como html sem precisar editar muita coisa coisa no codigo ou alterei o campo objNovoEmail.Body para o seguinte.
ResponderExcluirobjNovoEmail.Body = Replace(txtMensagem.Text, Chr(13), "
")
Funcionou 300%.
Boa tarde. Apenas uma dúvida, após enviar o e-mail, como salvar uma cópia do servidor de e-mails?
ResponderExcluir