2009-12-27 109 views
1

我正在使用可以發送支持雅虎郵件和Gmail的電子郵件的程序。它在gmail中工作(如果發件人使用Gmail)但如果發件人使用雅虎郵件,它將不起作用。 這裏是我的代碼:無法使用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

知道例外的細節會很有趣。 – MarkJ 2009-12-27 07:40:04

+0

在System.dll中發生類型'System.Net.Mail.SmtpException'的第一次機會異常 程序'[2660] rewmail.vshost.exe:Managed'已退出,代碼爲0(0x0)。 – user225269 2009-12-27 08:09:01

回答

1

看起來你可能會使用wrong port?試試這個

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

編輯 OK,沒有工作。其實,是不是SMTP地址也錯了?

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

你也可以在Try塊包住整個程序和捕捉任何SmtpException和寫出來的特殊SmtpStatusCode

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

嘗試將其更改爲587,但 仍然沒有運氣 – user225269 2009-12-27 08:14:47

0

雅虎使用端口465對非付費用戶(訂閱服務)。