VB.Net應用程式可傳送電子郵件。System.Net.Mail
名稱空間包含用於向簡單郵件傳輸協定(SMTP)伺服器傳送電子郵件以供傳送的類。
下表列出了一些常用的類:
編號 | 類 | 描述 |
---|---|---|
1 | Attachment |
代表電子郵件的附件。 |
2 | AttachmentCollection |
將附件儲存為電子郵件的一部分。 |
3 | MailAddress |
代表電子郵件發件人或收件人的地址。 |
4 | MailAddressCollection |
儲存與電子郵件關聯的電子郵件地址。 |
5 | MailMessage |
表示可以使用SmtpClient 類傳送的電子郵件。 |
6 | SmtpClient |
允許應用程式使用簡單郵件傳輸協定(SMTP)傳送電子郵件。 |
7 | SmtpException |
表示當SmtpClient 無法完成Send 或SendAsync 操作時引發的異常。 |
SmtpClient
類允許應用程式使用簡單郵件傳輸協定(SMTP)傳送電子郵件。
以下是SmtpClient
類的一些常用屬性:
編號 | 屬性 | 描述 |
---|---|---|
1 | ClientCertificates |
指定應使用哪些證書來建立安全通訊端層(SSL)連線。 |
2 | Credentials |
獲取或設定用於驗證發件人的憑證。 |
3 | EnableSsl |
指定SmtpClient 是否使用安全通訊端層(SSL)來加密連線。 |
4 | Host |
獲取或設定用於SMTP事務的主機的名稱或IP地址。 |
5 | Port |
獲取或設定用於SMTP事務的埠。 |
6 | Timeout |
獲取或設定一個值,該值指定同步傳送呼叫超時之後的時間量。 |
7 | UseDefaultCredentials |
獲取或設定一個布林值,該值控制是否使用請求傳送DefaultCredentials 。 |
以下是SmtpClient
類的一些常用方法:
編號 | 方法 | 描述 |
---|---|---|
1 | Dispose |
將QUIT訊息傳送到SMTP伺服器,正常結束TCP連線,並釋放當前SmtpClient 範例使用的所有資源。 |
2 | Dispose(Boolean) |
將QUIT訊息傳送到SMTP伺服器,正常結束TCP連線,釋放SmtpClient 類的當前範例使用的所有資源,並可選地處置受管資源。 |
3 | OnSendCompleted |
引發SendCompleted 事件。 |
4 | Send(MailMessage) |
將指定的訊息傳送到SMTP伺服器進行傳送。 |
5 | Send(String, String, String, String) |
將指定的電子郵件傳送到SMTP伺服器進行傳送。 郵件發件人,收件人,主題和郵件正文使用String 物件指定。 |
6 | SendAsync(MailMessage, Object) |
將指定的電子郵件傳送到SMTP伺服器進行傳送。 此方法不會阻塞呼叫執行緒,並允許呼叫方將物件傳遞給操作完成時呼叫的方法。 |
7 | SendAsync(String, String, String, String, Object) |
傳送電子郵件到SMTP伺服器進行傳送。 郵件發件人,收件人,主題和郵件正文使用String 物件指定。 此方法不會阻塞呼叫執行緒,並允許呼叫方將物件傳遞給操作完成時呼叫的方法。 |
8 | SendAsyncCancel |
取消非同步操作以傳送電子郵件。 |
9 | SendMailAsync(MailMessage) |
將指定的訊息傳送到SMTP伺服器以作為非同步操作進行傳送。 |
10 | SendMailAsync(String, String, String, String) |
將指定的訊息傳送到SMTP伺服器以作為非同步操作進行傳送。郵件發件人,收件人,主題和郵件正文使用String 物件指定。 |
11 | ToString |
返回表示當前物件的字串。 |
以下範例演示如何使用SmtpClient
類傳送郵件。 以下幾點需要注意:
Credentials
頒發證書。MailMessage.From
和MailMessage.To
屬性提供發件人的電子郵件地址和收件人的電子郵件地址。MailMessage.Body
屬性指定郵件內容。在這個例子中,建立一個簡單的應用程式來傳送電子郵件。參考以下步驟:
Text
屬性分別更改為:「傳送者:」,「接收者:」和「郵件內容:」。Name
屬性分別更改為:txtFrom
,txtTo
和txtMessage
。Text
屬性更改為「傳送」設計表單的效果如下所示 -
在程式碼編輯器中新增下面的程式碼 -
Imports System.Net.Mail
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Set the caption bar text of the form.
txtFrom.Text = "[email protected]"
txtTo.Text = "[email protected]"
Me.Text = "VB.Net傳送郵件範例-tw511.com"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
'Dim Smtp_Server As New SmtpClient
Dim smtp As New System.Net.Mail.SmtpClient("smtp.qq.com", 25)
Dim mail As New System.Net.Mail.MailMessage()
smtp.UseDefaultCredentials = False
smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "zrp29888814encaei")
mail.Subject = "郵件主題a"
mail.SubjectEncoding = System.Text.Encoding.UTF8
mail.BodyEncoding = System.Text.Encoding.UTF8
mail.From = New System.Net.Mail.MailAddress(txtFrom.Text)
mail.Priority = System.Net.Mail.MailPriority.Normal
mail.IsBodyHtml = True
mail.Body = txtMessage.Text
mail.To.Add(txtTo.Text)
smtp.Send(mail)
MsgBox("郵件已傳送~!")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
End Sub
End Class
注意:必須提供您的QQ郵箱賬號和真實密碼的憑據,才能登入SMTP伺服器傳送郵件。
首先我們要知道用VB.Net代理登入QQ郵箱發郵件,是需要更改自己QQ郵箱設定的。在這裡大家需要做兩件事情:郵箱開啟SMTP功能 、獲得授權碼。下面來看看如何更改模板程式碼,實現使用VB.Net登入QQ郵箱傳送QQ郵件。
注意:也可以使用其他服務商的 SMTP 存取(QQ、網易、Gmail等)。
使用QQ郵件傳送郵件之前如何設定授權碼,參考:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
當執行上面的程式碼並使用Microsoft Visual Studio工具列上的「開始」按鈕執行時,它將顯示以下視窗,將使用該視窗傳送電子郵件,自己嘗試。