Jump to content
thoga31

Envio de mail falha

Recommended Posts

thoga31

Olá camaradas.

Após ter criado um código que (presumivelmente) permite enviar mails da minha aplicação para o meu mail, o programa fica uns 2 minutos sem responder, até que dá o erro "Falha ao enviar o mail". Não vejo onde possa estar o erro. Ao fazer o Debug, as propriedades do Correio (To, From, Subject...) falham quase todas.

    Private Sub EnviarMail()
        Dim Correio As New System.Net.Mail.MailMessage

        Correio.From = New System.Net.Mail.MailAddress(De_Mail.Text)
        Correio.To.Add(New System.Net.Mail.MailAddress("nmeu@mail.pt"))
        Correio.Subject = "Assunto"
        Correio.Body = Mensagem.Text
        Correio.IsBodyHtml = False
        Correio.Priority = Net.Mail.MailPriority.High

        Dim smtp As New System.Net.Mail.SmtpClient
        smtp.Host = "pop3.live.com"  ' Host do hotmail
        smtp.Port = 995  ' Porta do hotmail
        smtp.Credentials = New System.Net.NetworkCredential(De_Mail.Text, De_Password.Text)
        smtp.EnableSsl = True

        Try
            smtp.Send(Correio)
            MessageBox.Show("Mail enviado com sucesso!", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um erro inesperado!" & vbNewLine & ex.Message, String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
        End Try
    End Sub

De_Mail é uma textbox onde o utilizador insere o seu mail. De_Password é a textbox com PasswordChar onde insere a password.

Tenho, inclusive, uma segunda dúvida. Não é possível enviar um mail sem ser necessário o utilizador inserir as suas credenciais? Imagino que criando um mail meu específico para o efeito. :(

Cumprimentos,

thoga31.


Knowledge is free!

Share this post


Link to post
Share on other sites
Caça

Esse SMTP já não é usado, actualmente é

Endereço: smtp.live.com

Porta: 25


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
thoga31

Esse SMTP já não é usado, actualmente é

Endereço: smtp.live.com

Porta: 25

smtp.Host = "smtp.live.com" 

Edit: O que o @Caça disse.

Ora, e eu recebi nem há 30 minutos esta resposta:

pop3.live.com:995

LOL. :)

P.S. - já consegui enviar o mail. Obrigado :(


Knowledge is free!

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Também podes fazer assim

Private Sub EnviarMail()

        Dim destinatario As String = "email_do_destinatario@mail.com"

        Dim SmtpServer As New SmtpClient()
        SmtpServer.Credentials = New Net.NetworkCredential("o_teu_email@mail.com", "a_tua_password_do_email")
        SmtpServer.Port = 587
        SmtpServer.Host = "smtp.live.com"
        SmtpServer.EnableSsl = True

        Dim mail = New MailMessage()
        Dim addr1() As String = destinatario.Split(",")

        Try
            mail.From = New MailAddress("email_de_onde_parte", "nome_da_pessoa_de_onde_parte_o_email", System.Text.Encoding.UTF8)

            Dim i As Byte
            For i = 0 To addr1.Length - 1
                mail.To.Add(addr1(i))
            Next
            mail.Subject = "Assunto"
            mail.Body = "Mensagem"

            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure
            SmtpServer.Send(mail)

            MessageBox.Show("Mail enviado com sucesso!", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
        Catch ex As Exception
            MessageBox.Show("Ocorreu um erro inesperado!" & vbNewLine & ex.Message, String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
        End Try
    End Sub

EDIT: Testei o teu código com o Host e a porta que o @Caça indicou e não funciona comigo  😡


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
thoga31

        SmtpServer.Port = 587

EDIT: Testei o teu código com o Host e a porta que o @Caça indicou e não funciona comigo  😡

Vou registar o código. :)

Com a porta 587, do gmail, dúvido que funcione, neh? Que porta indicou o Caça? Lê bem...


Knowledge is free!

Share this post


Link to post
Share on other sites
Andrepereira9

Com a porta 587, do gmail, dúvido que funcione, neh? Que porta indicou o Caça? Lê bem...

O @Caça indicou a porta 25.

Utilizando o teu código com o host e a porta indicados pelo @Caça dá-me este erro

System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: Uma ligação existente foi forçada a fechar pelo anfitrião remoto. --->

Mas se eu utilizar o código que apresentei funciona com a porta 587. Basta-me alterar o host

Gmail  (smtp.gmail.com)

Hotmail  (smtp.live.com)

Estranho :):thumbsup: :thumbsup:


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Caça

A porta é relativa, se não colocares ele envia à mesma.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
thoga31

Ora viste? Comigo funciona, com outro não... O VB é super cool. :)


Knowledge is free!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.