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無法完成SendSendAsync操作時引發的異常。

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.FromMailMessage.To屬性提供發件人的電子郵件地址和收件人的電子郵件地址。
  • 使用MailMessage.Body屬性指定郵件內容。

示例

在這個例子中,創建一個簡單的應用程序來發送電子郵件。參考以下步驟:

  • 在窗體中添加三個標籤,三個文本框和一個按鈕控件。
  • 將標籤的Text屬性分別更改爲:「發送者:」「接收者:」「郵件內容:」
  • 將文本的Name屬性分別更改爲:txtFromtxtTotxtMessage
  • 將按鈕控件的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工具欄上的「開始」按鈕運行時,它將顯示以下窗口,將使用該窗口發送電子郵件,自己嘗試。

VB.Net發送電子郵件