VB.Net - 發(fā)送郵件

2022-05-26 11:42 更新

VB.Net允許從您的應(yīng)用程序發(fā)送電子郵件。 System.Net.Mail命名空間包含用于向簡(jiǎn)單郵件傳輸協(xié)議(SMTP)服務(wù)器發(fā)送電子郵件以進(jìn)行傳遞的類。

下表列出了一些常用的類:

SN描述
1Attachment
表示對(duì)電子郵件的附件。
2AttachmentCollection存儲(chǔ)要作為電子郵件的一部分發(fā)送的附件。
3MailAddress
表示電子郵件發(fā)件人或收件人的地址。
4MailAddressCollection存儲(chǔ)與電子郵件相關(guān)聯(lián)的電子郵件地址。
5MailMessage
表示可以使用SmtpClient類發(fā)送的電子郵件。
6SmtpClient允許應(yīng)用程序使用簡(jiǎn)單郵件傳輸協(xié)議(SMTP)發(fā)送電子郵件。
7SmtpException表示當(dāng)SmtpClient無法完成發(fā)送或SendAsync操作時(shí)拋出的異常。

SmtpClient類

SmtpClient類允許應(yīng)用程序使用簡(jiǎn)單郵件傳輸協(xié)議(SMTP)發(fā)送電子郵件。

以下是SmtpClient類的一些常用屬性:

SN屬性描述
1ClientCertificates指定應(yīng)使用哪些證書建立安全套接字層(SSL)連接。
2Credentials
獲取或設(shè)置用于驗(yàn)證發(fā)件人的憑據(jù)。
3EnableSsl指定SmtpClient是否使用安全套接字層(SSL)加密連接。
4Host
獲取或設(shè)置用于SMTP事務(wù)的主機(jī)的名稱或IP地址。
5Port
獲取或設(shè)置用于SMTP事務(wù)的端口。
6Timeout
獲取或設(shè)置一個(gè)值,該值指定同步發(fā)送調(diào)用超時(shí)的時(shí)間量。
7UseDefaultCredentials獲取或設(shè)置一個(gè)布爾值,該值控制是否隨請(qǐng)求一起發(fā)送DefaultCredentials。

以下是SmtpClient類的一些常用方法:

SN方法和說明
1

Dispose

向SMTP服務(wù)器發(fā)送QUIT消息,正常結(jié)束TCP連接,并釋放SmtpClient類的當(dāng)前實(shí)例使用的所有資源。

2

Dispose(Boolean)

向SMTP服務(wù)器發(fā)送QUIT消息,正常結(jié)束TCP連接,釋放由SmtpClient類的當(dāng)前實(shí)例使用的所有資源,并且可選地處置托管資源。

3

OnSendCompleted

引發(fā)SendCompleted事件。

4

Send(MailMessage)

將指定的消息發(fā)送到SMTP服務(wù)器進(jìn)行傳遞。

5

Send(String,String,String,String)

將指定的電子郵件發(fā)送到SMTP服務(wù)器進(jìn)行傳送。消息發(fā)件人,收件人,主題和郵件正文使用String對(duì)象指定。

6

SendAsync(MailMessage,Object)

將指定的電子郵件發(fā)送到SMTP服務(wù)器進(jìn)行傳送。此方法不會(huì)阻止調(diào)用線程,并允許調(diào)用者將一個(gè)對(duì)象傳遞給操作完成時(shí)調(diào)用的方法。

7

SendAsync(String,String,String,String,Object)
將電子郵件發(fā)送到SMTP服務(wù)器進(jìn)行傳送。消息發(fā)件人,收件人,主題和郵件正文使用String對(duì)象指定。此方法不會(huì)阻止調(diào)用線程,并允許調(diào)用者將一個(gè)對(duì)象傳遞給操作完成時(shí)調(diào)用的方法。

8

SendAsyncCancel

取消異步操作以發(fā)送電子郵件。

9

SendMailAsync(MAILMESSAGE)

發(fā)送指定消息,以交付作為異步操作的SMTP服務(wù)器。

10

SendMailAsync(MailMessage)
將指定的消息發(fā)送到SMTP服務(wù)器以作為異步操作進(jìn)行傳遞。

11

ToString
返回表示當(dāng)前對(duì)象的字符串。

以下示例演示如何使用SmtpClient類發(fā)送郵件。 在這方面應(yīng)注意以下幾點(diǎn):

  • 您必須指定用于發(fā)送電子郵件的SMTP主機(jī)服務(wù)器。 不同主機(jī)服務(wù)器的主機(jī)和端口屬性將不同。 我們將使用gmail服務(wù)器。

  • 如果SMTP服務(wù)器需要,您需要授予認(rèn)證憑據(jù)。

  • 您還應(yīng)該分別使用MailMessage.From和MailMessage.To屬性提供發(fā)件人的電子郵件地址和收件人的電子郵件地址。

  • 您還應(yīng)該使用MailMessage.Body屬性指定消息內(nèi)容。

示例

在這個(gè)例子中,讓我們創(chuàng)建一個(gè)發(fā)送電子郵件的簡(jiǎn)單應(yīng)用程序。 執(zhí)行以下步驟:

  • 在表單中添加三個(gè)標(biāo)簽,三個(gè)文本框和一個(gè)按鈕控件。

  • 將標(biāo)簽的文本屬性分別更改為 - “From”,“To:”和“Message:”。

  • 將文本的名稱屬性分別更改為txtFrom,txtTo和txtMessage。

  • 將按鈕控件的文本屬性更改為“發(fā)送”

  • 在代碼編輯器中添加以下代碼。

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地址和真實(shí)密碼以獲取憑據(jù)。

當(dāng)使用Microsoft Visual Studio工具欄上的“開始”按鈕執(zhí)行并運(yùn)行上述代碼時(shí),將顯示以下窗口,您將使用該窗口發(fā)送電子郵件,自行嘗試。

從VB.Net發(fā)送電子郵件

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)