VB.Net允許從您的應(yīng)用程序發(fā)送電子郵件。 System.Net.Mail命名空間包含用于向簡(jiǎn)單郵件傳輸協(xié)議(SMTP)服務(wù)器發(fā)送電子郵件以進(jìn)行傳遞的類。
下表列出了一些常用的類:
SN | 類 | 描述 |
---|---|---|
1 | Attachment | 表示對(duì)電子郵件的附件。 |
2 | AttachmentCollection | 存儲(chǔ)要作為電子郵件的一部分發(fā)送的附件。 |
3 | MailAddress | 表示電子郵件發(fā)件人或收件人的地址。 |
4 | MailAddressCollection | 存儲(chǔ)與電子郵件相關(guān)聯(lián)的電子郵件地址。 |
5 | MailMessage | 表示可以使用SmtpClient類發(fā)送的電子郵件。 |
6 | SmtpClient | 允許應(yīng)用程序使用簡(jiǎn)單郵件傳輸協(xié)議(SMTP)發(fā)送電子郵件。 |
7 | SmtpException | 表示當(dāng)SmtpClient無法完成發(fā)送或SendAsync操作時(shí)拋出的異常。 |
以下是SmtpClient類的一些常用屬性:
SN | 屬性 | 描述 |
---|---|---|
1 | ClientCertificates | 指定應(yīng)使用哪些證書建立安全套接字層(SSL)連接。 |
2 | Credentials | 獲取或設(shè)置用于驗(yàn)證發(fā)件人的憑據(jù)。 |
3 | EnableSsl | 指定SmtpClient是否使用安全套接字層(SSL)加密連接。 |
4 | Host | 獲取或設(shè)置用于SMTP事務(wù)的主機(jī)的名稱或IP地址。 |
5 | Port | 獲取或設(shè)置用于SMTP事務(wù)的端口。 |
6 | Timeout | 獲取或設(shè)置一個(gè)值,該值指定同步發(fā)送調(diào)用超時(shí)的時(shí)間量。 |
7 | UseDefaultCredentials | 獲取或設(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ā)送電子郵件,自行嘗試。
更多建議: