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類
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
類發送郵件。 以下幾點需要注意:
- 必須指定用於發送電子郵件的SMTP主機伺服器。主機和端口屬性對於不同的主機伺服器是不同的。這個示例中將使用QQ郵件伺服器。
- 如果SMTP伺服器需要,需要為
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 = "769728683@qq.com"
txtTo.Text = "769728683@qq.com"
Me.Text = "VB.Net發送郵件示例-xuhuhu.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("29888814@qq.com", "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工具欄上的“開始”按鈕運行時,它將顯示以下窗口,將使用該窗口發送電子郵件,自己嘗試。
上一篇:
VB.Net Excel工作表
下一篇:
VB.Net XML文檔處理