2012-11-17 138 views
1

試圖獲得一個非常基本的程序發送給我一封電子郵件。我有3個文本框。在vb 2010發送郵件失敗

TextBox1的是一個只讀文本框與我的電子郵件在它 TextBox2中是「您的電子郵件」 TextBox3是你的消息

而且還有一個按鈕(Button1的),上面寫着「發送」

這裏是我整個項目的代碼。出於安全考慮,我在此問題中刪除了我的電子郵件和密碼。

當我運行該程序,並在TextBox2中「[email protected]」和「TestEmail1234」輸入到TextBox3再按發送,它把我帶回到編碼頁面,並說 「SmtpException了未處理。 發送失敗郵件」

Imports System.Net.Mail 

Public Class Form1 

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
     Dim smtpServer As New SmtpClient() 
     Dim mail As New MailMessage() 

     smtpServer.Credentials = New Net.NetworkCredential("[email protected]", "mypassword") 
     'using Gmail 
     smtpServer.Port = 587 
     smtpServer.Host = "smtp.gmail.com" 
     smtpServer.EnableSsl = True 

     mail = New MailMessage() 
     mail.From = New MailAddress("my [email protected]", TextBox1.Text) 
     mail.To.Add(TextBox1.Text) 
     mail.Subject = TextBox2.Text 
     mail.Body = TextBox3.Text 

     smtpServer.Send(mail) 

    End Sub 
End Class 
+1

你可以設置一個斷點,並告訴在哪條線路出了問題? –

+0

@ValentijnSpruyt一個什麼?我是Visual Studio 2010的新手。 – KevinWolf228

+0

右鍵單擊Button1_click子行的開始行,然後選擇「添加斷點」。然後運行代碼,它會停在你的斷點處。然後,在頂部菜單中,您可以選擇DEBUG> step into/over ...,然後遍歷每行的代碼行。在某個時刻,你的代碼將會崩潰。您能否向我們提供代碼斷行?乾杯。 –

回答

1

有幾個問題,我只是給你一個工作腳本

Imports System.Net.Mail 
Public Class Form1 
Dim message As New MailMessage 
Dim smtp As New SmtpClient 
Dim instance As IDisposable 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim Mail As New MailMessage 
    Mail.Subject = "test email" 
    Mail.To.Add("[email protected]") 
    Mail.From = New MailAddress("[email protected]") 
    Mail.Body = "This is an email!" 
    Dim SMTP As New SmtpClient("smtp.gmail.com") 
    SMTP.EnableSsl = True 
    SMTP.Credentials = New System.Net.NetworkCredential("[email protected]", "password") 
    SMTP.Port = 587 
    SMTP.Send(Mail) 
    MsgBox("Sent Successfully") 

End Sub 
End Class