none
Enviar email via VB.Net

    Question

  • Eu estou a utilizar este código pra mandar e-mail . Eu preciso disto porque é normal que as pessoas detetem bugs nos meus programas e era bom que podessem reportar os mesmo ne ?

    Imports System.Net.Mail
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Mail As New MailMessage
            Mail.Subject = "Hyrokumata CheckStatus Bug Report"
            Mail.To.Add("******@gmail.com")
            Mail.From = New MailAddress("*****@gmail.com")
            Mail.Body = RichTextBox1.Text()
    
            Dim SMTP As New SmtpClient("smtp.gmail.com")
            SMTP.EnableSsl = True
            SMTP.Credentials = New System.Net.NetworkCredential("username@gmail.com", "*******")
            SMTP.Port = 587
            SMTP.Send(Mail)
    
    
    
    
    
    
        End Sub
    End Class

    No entanto recebo um erro na parte SMTP.Send(Mail) . Porque ? o erro so da ao executar a aplicação

    Já agora qual a port do hotmail ? Obrigado a todos


    O meu objetivo ______ criar um sistema operativo

    Saturday, April 07, 2012 10:46 AM

Answers

  • Existe forma de enviar emails para hotmail, gmail e afins sem ser preciso usar uma conta?

    já agora para outlook, como funciona?

    valeu

    o que voce pode fazer é usar os seus próprios dados sem os outros verem. Vou postar o código que usei para os usuarios dos meus programas poderem relatar bugs ou problemas sem ter que escrever os seus dados.

    Primeiro de tudo voce tem que importar o seguinte:

    Imports System
    Imports System.Net
    Imports System.Net.Mail

    Depois voce pode colocar uma TextBox ou RichTextBox e um botão Enviar

    Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New Net.NetworkCredential("seu e-mail", "sua senha")
            SmtpServer.Host = "smtp.live.com" 
            SmtpServer.Port = 587 'server para Hotmail
            SmtpServer.EnableSsl = True
            mail.From = New MailAddress("seu e-mail novamente") 'mail from ou seja de quem manda o e-mail
            mail.To.Add("seu e-mail")' mail.to para quem vai . No meu caSO tou a mandar e-mail para mim mesmo
    
            mail.Body = TextBox1.Text
    ' se usa RichTextBox
    'mail.body = RichTextBox1.Text
    
            SmtpServer.Send(mail)
            MsgBox("E-mail enviado com sucesso", vbInformation + vbOKOnly, ":D")


    Meu novo programa (Bloco de Notas) http://hyrokumata-app.blogspot.pt/2012/07/notepad-3-beta.html


    • Edited by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Marked as answer by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Unmarked as answer by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Marked as answer by FabioDaniel Thursday, August 09, 2012 5:47 PM
    Thursday, August 09, 2012 8:58 AM

All replies

  • Texto de erro:

    O servidor SMTP requer uma ligação segura ou o cliente não estava autenticado. A resposta do servidor foi: 5.5.1 Authentication Required. Learn more at

    baixem a app aki se quiserem so pra verem o erro

    http://www.mediafire.com/?9fgasgof2vfvaa7


    O meu objetivo ______ criar um sistema operativo


    • Edited by FabioDaniel Saturday, April 07, 2012 11:08 AM
    Saturday, April 07, 2012 10:50 AM
  • Voce esta errando sua senha/email
    Saturday, April 07, 2012 2:20 PM
  • ja tentei ate outros e-mail e da o mesmo erro . nao tem a ver com isso axo eu

    O meu objetivo ______ criar um sistema operativo

    Saturday, April 07, 2012 5:35 PM
  • Voce esta setando o ssl OK,porta OK,esta tudo certo.

    O problema mesmo é usuario e senha,

    por curiosidade,voce esta usando algum programa de segurança que supervisionaliza as portas?

    Monday, April 09, 2012 2:25 PM
  • Vei , se tem que abrir o Internet explorer e se logar , senao vai dar erro de cara ^^
    Monday, April 09, 2012 2:27 PM
  • ja tentei ate outros e-mail e da o mesmo erro . nao tem a ver com isso axo eu

    O meu objetivo ______ criar um sistema operativo

    message.From = New MailAddress("Email de test @live.com", "Messagen")
            message.To.Add("@hotmail.com")
            message.Body = "Quem mando : " & TextBox2.Text
            message.Subject = "Mensagem"
            message.Priority = MailPriority.Normal
    
            'Configurações SMTP
    
            smtp.EnableSsl = True
            smtp.Port = "587"
            smtp.Host = "smtp.live.com"
            smtp.Credentials = New Net.NetworkCredential("email de teste @live.com", "Senha")
            smtp.Send(message)
            MsgBox("Mensagem enviada com Sucesso ! ")
            Me.Close()

    Ai meu cod e funciona, cria um projeto , coloca o cod depois vc entra no Internet explorer e se loga no Gmail ou hotmail 
    Monday, April 09, 2012 2:30 PM
  • Nao cara,nao tem nada a ver.

    Isso é problema de autenticação com o server smtp.


    • Edited by Eduardo1990 Tuesday, April 10, 2012 2:37 AM
    Monday, April 09, 2012 6:13 PM
  • Olá Fábio_15anos, boa noite.

    Tenho uma função aqui que pode te ajudar.

    Declarar as Bibliotecas:

    Imports System.Net
    Imports System.Net.Mail

    Sub Rotina para envio de email:

    Public Sub enviarEmail(ByVal nome As String, ByVal de As String, ByVal resposta As String, ByVal html As Boolean, ByVal assinatura As String, ByVal site As String, ByVal servidor As String, ByVal credenciais As NetworkCredential, ByVal autenticacao As Boolean, ByVal seguranca As Boolean, ByVal para As String, ByVal copia As String, ByVal oculta As String, ByVal assunto As String, ByVal mensagem As String)
            Try
                Dim mMailMessage As New MailMessage()
                mMailMessage.From = New MailAddress(de)
                mMailMessage.To.Add(New MailAddress(para))
    
                If Not oculta Is Nothing And oculta <> String.Empty Then
                    mMailMessage.Bcc.Add(New MailAddress(oculta))
                End If
    
                If Not copia Is Nothing And copia <> String.Empty Then
                    mMailMessage.CC.Add(New MailAddress(copia))
                End If
    
                If (html = False) Then
                    mMailMessage.IsBodyHtml = False
                    mMailMessage.Body = mensagem
                Else
                    mMailMessage.IsBodyHtml = True
                    mMailMessage.Body = "<div style=""width: 100%; height: 100%; margin: 0; padding: 20px; background-color: #E5E5E5;"">"
                    mMailMessage.Body &= "<div style=""padding: 10px; border: 5px solid #C5C5C5; font: normal 12px/16px Arial, Helvetica, sans-serif; color: #000; background-color: #FFF;"">"
                    mMailMessage.Body &= "<p><strong>NOME:</strong> " & nome & "</p>"
                    mMailMessage.Body &= "<p><strong>E-MAIL:</strong> " & de & "</p>"
                    mMailMessage.Body &= "<p><strong>TELEFONE:</strong> (17) 332X-XXXX</p>"
                    mMailMessage.Body &= "<p><strong>ASSUNTO:</strong> " & assunto & "</p>"
                    mMailMessage.Body &= "<p><strong>MENSAGEM:</strong> " & mensagem.Replace(Environment.NewLine, "<br />") & "</p>"
                    mMailMessage.Body &= "</div></div><br /><br />"
    
                    If Not assinatura Is Nothing And assinatura <> String.Empty Then
                        mMailMessage.Body &= assinatura.Replace(Environment.NewLine, "<br />")
                    End If
                End If
    
                mMailMessage.Subject = assunto
                mMailMessage.ReplyTo = New MailAddress(resposta)
                mMailMessage.Priority = MailPriority.High
                mMailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure
    
                Dim mMailStatus As New System.Net.Mail.SmtpStatusCode()
                Dim mSmtpClient As New SmtpClient(servidor)
                mSmtpClient.Credentials = credenciais
                mSmtpClient.EnableSsl = seguranca
                mSmtpClient.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
    
                mSmtpClient.Send(mMailMessage)
            Catch ex As Exception
                If (MessageBox.Show("ERRO AO ENVIAR O E-MAIL:" & vbCrLf & ex.Message.ToString, "ERRO", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1) = DialogResult.Retry) Then
                    enviarEmail(nome, de, resposta, html, assinatura, site, servidor, credenciais, autenticacao, seguranca, para, copia, oculta, assunto, mensagem)
                Else
                    Exit Try
                    Exit Sub
                End If
            End Try
        End Sub

    Linha de chamada:

    enviarEmail("TESTE", "teste@gmail.com", "teste@hotmail.com", True, "TESTE", "http://teste.com.br", "smtp.gmail.com", New Net.NetworkCredential("teste@gmail.com", "teste"), True, True, "teste@gmail.com", "teste@yahoo.com.br", "teste@yahoo.com.br", "TESTE", "TESTE")

    Claro que existem campos (parâmetros) a mais, que você pode não vir a precisar, é só retirar.


    Luige C. Salvi (17) | 9224-9335 Web Designer Pleno Microsoft .NET Developer Pleno OPS® Comunicação e Comércio Eletrônico

    Tuesday, April 10, 2012 4:06 AM
  • Fabio, consegui resolver...

    Estava com o MESMO problema que você!

    Segue código...

            Try
                Dim mail As New MailMessage()
                mail.From = New MailAddress("felipe.alves@romap.com.br")
                mail.To.Add("felipe.alves@romap.com.br")
                mail.Subject = "Reserva da sala de reunião"
                mail.Body = "A sala de reunião foi reservada do horario x ao horario y"
    
                Dim smtp As New SmtpClient("smtp.romap.com.br", 587)
                smtp.Credentials = New Net.NetworkCredential("felipe.alves@romap.com.br", "*****")
                smtp.Send(mail)
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try


    Tuesday, April 10, 2012 2:59 PM
  • Muito bom este tópico :)

    Dá para enviar email´s mas sem ter que usar a conta de email?

    smtp.Credentials = New Net.NetworkCredential("felipe.alves@romap.com.br", "*****")

    Pois é para usar por muita gente e não queria ter que usar com o meu emial..


    Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com

    Tuesday, April 10, 2012 10:51 PM
  • Fabio,

    Você conseguiu realizar testes com os códigos? Teve algum progresso nessa questão?


    Heloisa Pires | LATAM Forum Support Engineer | Microsoft Corporation

    Friday, April 13, 2012 1:56 PM
    Moderator
  • Fabio,

    Você conseguiu realizar testes com os códigos? Teve algum progresso nessa questão?


    Heloisa Pires | LATAM Forum Support Engineer | Microsoft Corporation

    É incrivel . Exprimentei tudo e não dá. Talvez por ser sexta feira 13 (dia de azar)

    No entanto decidi colocar uma loginform e a minha form1.

    Na form1 usei:

    Dim message As New Net.Mail.MailMessage(My.Settings.Username, TextBox1.Text, TextBox2.Text, RichTextBox1.Text)
                Dim smtp As New Net.Mail.SmtpClient("smtp.live.com", 587)
                Dim user As New Net.NetworkCredential(My.Settings.Username, My.Settings.Password)
                smtp.EnableSsl = True
                smtp.Credentials = user
                smtp.Port = 587
                smtp.Host = "smtp.live.com"
                smtp.Send(message)
                MsgBox("Mensagem enviada com exito! ", MsgBoxStyle.Information, "Sucesso!")

    Na loginForm1:

    ' TODO: Insert code to perform custom authentication using the provided username and password 
        ' (See http://go.microsoft.com/fwlink/?LinkId=35339).  
        ' The custom principal can then be attached to the current thread's principal as follows: 
        '     My.User.CurrentPrincipal = CustomPrincipal
        ' where CustomPrincipal is the IPrincipal implementation used to perform authentication. 
        ' Subsequently, My.User will return identity information encapsulated in the CustomPrincipal object
        ' such as the username, display name, etc.
    
        Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
            If UsernameTextBox.Text.Contains("@hotmail") = False Then
                MsgBox("Digite um endereço válido", MsgBoxStyle.Exclamation, "Erro!")
            Else
                If PasswordTextBox.Text = "" Then
                    MsgBox("Digite uma password válida", MsgBoxStyle.Exclamation, "Erro!")
                Else
                    My.Settings.Username = UsernameTextBox.Text
                    My.Settings.Password = PasswordTextBox.Text
                    MsgBox("Voce logou com  sucesso", MsgBoxStyle.Information, "Sucesso!")
                    Form1.Show()
                    Me.Close()
    
                End If
            End If
        End Sub
    
        Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
            Me.Close()
        End Sub
    
    End Class
    

    Ao usar os codes dados pelo Filipe e Junior continuava a receber o mesmo erro de antes.  

    Mesmo assim agradeço a todos e vou continuar a tentar a vossa maneira porque nao queria nada a formlogin :/


    O meu objetivo ______ criar um sistema operativo

    Friday, April 13, 2012 3:37 PM
  • Olá amigos, eu resolvi o problema, era no servidor do Gmail da Google.

    Por algum motivo não está mais dando acesso a vb.net, então a solução que eu achei foi usar o servidor da hotmail e deu tudo certo...

    Segue o codigo

     Dim Mail As New MailMessage
            Mail.Subject = "Teste de email"
            Mail.To.Add("endereço de destino")
            Mail.From = New MailAddress("seu endereço@hotmail.com")
            Mail.Body = "campo que possui a mensagem"
    
            Dim SMTP As New SmtpClient("smtp.live.com")
            SMTP.EnableSsl = True
            SMTP.Credentials = New System.Net.NetworkCredential("seu email@hotmail.com", "sua senha")
            SMTP.Port = 587
    
            Try
                SMTP.Send(Mail)
                MsgBox("O e-mail foi enviado com sucesso", MsgBoxStyle.Information)
            Catch ex As Exception
                MsgBox(ex.Message & vbCrLf)
            End Try
    

    Comigo funcionou tudo certo, mas como estou sem tempo não deu pra mostrar o video com ele funcionando

    Mas está é minha solução

    Thursday, August 02, 2012 11:38 PM
  • ah!, e não se esqueça de importar:

    Imports System.Net.Mail

    ^^

     
    Thursday, August 02, 2012 11:39 PM
  • Existe forma de enviar emails para hotmail, gmail e afins sem ser preciso usar uma conta?

    já agora para outlook, como funciona?

    valeu

    Thursday, August 09, 2012 12:06 AM
  • Existe forma de enviar emails para hotmail, gmail e afins sem ser preciso usar uma conta?

    já agora para outlook, como funciona?

    valeu

    o que voce pode fazer é usar os seus próprios dados sem os outros verem. Vou postar o código que usei para os usuarios dos meus programas poderem relatar bugs ou problemas sem ter que escrever os seus dados.

    Primeiro de tudo voce tem que importar o seguinte:

    Imports System
    Imports System.Net
    Imports System.Net.Mail

    Depois voce pode colocar uma TextBox ou RichTextBox e um botão Enviar

    Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New Net.NetworkCredential("seu e-mail", "sua senha")
            SmtpServer.Host = "smtp.live.com" 
            SmtpServer.Port = 587 'server para Hotmail
            SmtpServer.EnableSsl = True
            mail.From = New MailAddress("seu e-mail novamente") 'mail from ou seja de quem manda o e-mail
            mail.To.Add("seu e-mail")' mail.to para quem vai . No meu caSO tou a mandar e-mail para mim mesmo
    
            mail.Body = TextBox1.Text
    ' se usa RichTextBox
    'mail.body = RichTextBox1.Text
    
            SmtpServer.Send(mail)
            MsgBox("E-mail enviado com sucesso", vbInformation + vbOKOnly, ":D")


    Meu novo programa (Bloco de Notas) http://hyrokumata-app.blogspot.pt/2012/07/notepad-3-beta.html


    • Edited by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Marked as answer by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Unmarked as answer by FabioDaniel Thursday, August 09, 2012 9:00 AM
    • Marked as answer by FabioDaniel Thursday, August 09, 2012 5:47 PM
    Thursday, August 09, 2012 8:58 AM
  • -------------------------------------------------------
    CONTA HOTMAIL
    -------------------------------------------------------
    Servidor para Enviar:

    Nome Servidor ................. smtp.live.com
    Porto ......................... 587
    Nome Utilizador ............... qualquer@hotmail.com
    Metodo Autenticacao ........... Normal password
    Seguranca da Ligacao .......... STARTTLS

    Servidor para Receber:

    Nome Servidor ................. pop3.live.com
    Porto ......................... 995
    Nome Utilizador ............... qualquer@hotmail.com
    Metodo Autenticacao ........... Normal Password
    Seguranca da Ligacao .......... SSL/TLS

    Sunday, November 18, 2012 4:34 PM