- VB.Net 基礎教程
- VB.Net - 首頁
- VB.Net - 概述
- VB.Net - 環境設定
- VB.Net - 程式結構
- VB.Net - 基本語法
- VB.Net - 資料型別
- VB.Net - 變數
- VB.Net - 常量
- VB.Net - 修飾符
- VB.Net - 語句
- VB.Net - 指令
- VB.Net - 運算子
- VB.Net - 決策
- VB.Net - 迴圈
- VB.Net - 字串
- VB.Net - 日期和時間
- VB.Net - 陣列
- VB.Net - 集合
- VB.Net - 函式
- VB.Net - 子過程
- VB.Net - 類和物件
- VB.Net - 異常處理
- VB.Net - 檔案處理
- VB.Net - 基本控制元件
- VB.Net - 對話方塊
- VB.Net - 高階窗體
- VB.Net - 事件處理
- VB.Net 高階教程
- VB.Net - 正則表示式
- VB.Net - 資料庫訪問
- VB.Net - Excel 表格
- VB.Net - 傳送電子郵件
- VB.Net - XML 處理
- VB.Net - Web 程式設計
- VB.Net 有用資源
- VB.Net - 快速指南
- VB.Net - 有用資源
- VB.Net - 討論
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 獲取或設定一個值,該值指定同步 Send 呼叫超時的時間量。 |
| 7 | UseDefaultCredentials 獲取或設定一個布林值,該值控制是否將 DefaultCredentials 與請求一起傳送。 |
以下是 SmtpClient 類的一些常用方法:
| 序號 | 方法及描述 |
|---|---|
| 1 |
Dispose 向 SMTP 伺服器傳送 QUIT 訊息,優雅地結束 TCP 連線,並釋放 SmtpClient 類當前例項使用的所有資源。 |
| 2 |
Dispose(Boolean) 向 SMTP 伺服器傳送 QUIT 訊息,優雅地結束 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 主機伺服器。Host 和 Port 屬性對於不同的主機伺服器將不同。我們將使用 Gmail 伺服器。
如果 SMTP 伺服器需要,您需要提供Credentials 進行身份驗證。
您還應該分別使用MailMessage.From 和MailMessage.To 屬性提供發件人的電子郵件地址和收件人的電子郵件地址。
您還應該使用MailMessage.Body 屬性指定郵件內容。
示例
在此示例中,讓我們建立一個簡單的應用程式來發送電子郵件。請按照以下步驟操作:
在窗體中新增三個標籤、三個文字框和一個按鈕控制元件。
將標籤的 Text 屬性分別更改為“From”、“To:”和“Message:”。
將文字框的 Name 屬性分別更改為 txtFrom、txtTo 和 txtMessage。
將按鈕控制元件的 Text 屬性更改為“Send”。
在程式碼編輯器中新增以下程式碼。
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.
Me.Text = "tutorialspoint.com"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential("username@gmail.com", "password")
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "smtp.gmail.com"
e_mail = New MailMessage()
e_mail.From = New MailAddress(txtFrom.Text)
e_mail.To.Add(txtTo.Text)
e_mail.Subject = "Email Sending"
e_mail.IsBodyHtml = False
e_mail.Body = txtMessage.Text
Smtp_Server.Send(e_mail)
MsgBox("Mail Sent")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
End Sub
您必須提供您的 Gmail 地址和真實密碼作為憑據。
當以上程式碼執行並使用 Microsoft Visual Studio 工具欄上的“啟動”按鈕執行時,它將顯示以下視窗,您可以使用它來發送電子郵件,請親自嘗試。