2009-12-27 12 views
1

Je travaille avec un programme qui peut envoyer un courriel supportant Yahoo Mail et Gmail. Et cela fonctionne dans Gmail (si l'expéditeur utilise Gmail) Mais cela ne fonctionnera pas si l'expéditeur utilise le courrier Yahoo. Voici mon code:ne peut pas envoyer yahoo email en utilisant vb.net

mail.From = New MailAddress(TextBox2.Text) 
    mail.To.Add(New MailAddress(TextBox1.Text)) 
    mail.Subject = TextBox4.Text 
    mail.Body = TextBox4.Text 



    mail.IsBodyHtml = True 

    Dim client2 As SmtpClient = New SmtpClient("smtp.mail.yahoo.com", 25) 
    Dim client As SmtpClient = New SmtpClient("smtp.gmail.com", 587) 




    client.EnableSsl = True 
    client.Credentials = New System.Net.NetworkCredential(TextBox2.Text, TextBox3.Text) 


    Try 
     client.Send(mail) 
    Catch ex As Exception 
     MessageBox.Show("Sending email failed. Please Try again") 
+0

Il serait intéressant de connaître les détails de l'exception. – MarkJ

+0

Une exception de première occurrence de type 'System.Net.Mail.SmtpException' s'est produite dans System.dll Le programme '[2660] rewmail.vshost.exe: Managed' s'est terminé avec le code 0 (0x0). – user225269

Répondre

1

On dirait que vous pourriez utiliser le wrong port? Essayez cette

Dim client2 As SmtpClient = New SmtpClient("smtp.mail.yahoo.com", 587) 

EDIT OK, qui ne fonctionne pas. En fait, l'adresse SMTP n'est-elle pas incorrecte?

Dim client2 As SmtpClient = New SmtpClient("plus.smtp.mail.yahoo.com", 587) 

Vous pouvez également envelopper tout le programme dans un bloc Try et attraper tout SmtpException et écrire le SmtpStatusCode spécial:

Try 
    ' Blah blah ' 
Catch (SmtpException e) 
    Console.WriteLine("Error: {0} {1}", e.StatusCode, e.ToString) 
End Try 
+0

essayé de le changer en 587 mais toujours pas de chance – user225269

0

Yahoo utilise le port 465 pour les utilisateurs non payants (services d'abonnement).

Questions connexes