VB.Net發送電子郵件
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 = "[email protected]"
txtTo.Text = "[email protected]"
Me.Text = "VB.Net發送郵件示例-yiibai.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工具欄上的「開始」按鈕運行時,它將顯示以下窗口,將使用該窗口發送電子郵件,自己嘗試。