VB.Net - 发送电子邮件


VB.Net 允许从您的应用程序发送电子邮件。System.Net.Mail命名空间包含用于将电子邮件发送到简单邮件传输协议 (SMTP) 服务器进行传递的类

下表列出了其中一些常用的类 -

先生。 类别和描述
1

依恋

表示电子邮件的附件。

2

附件集合

存储要作为电子邮件的一部分发送的附件。

3

邮件地址

表示电子邮件发件人或收件人的地址。

4

邮件地址集合

存储与电子邮件关联的电子邮件地址。

5

邮件留言

表示可以使用 SmtpClient 类发送的电子邮件消息。

6

SMTP客户端

允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。

7

SMTP异常

表示 SmtpClient 无法完成 Send 或 SendAsync 操作时引发的异常。

SmtpClient 类

SmtpClient 类允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。

以下是 SmtpClient 类的一些常用属性 -

先生。 属性及描述
1

客户证书

指定应使用哪些证书来建立安全套接字层 (SSL) 连接。

2

证书

获取或设置用于验证发件人身份的凭据。

3

启用S​​SL

指定 SmtpClient 是否使用安全套接字层 (SSL) 来加密连接。

4

主持人

获取或设置用于 SMTP 事务的主机的名称或 IP 地址。

5

港口

获取或设置用于 SMTP 事务的端口。

6

暂停

获取或设置一个值,该值指定同步发送调用超时之前的时间量。

7

使用默认凭证

获取或设置一个布尔值,该值控制是否随请求发送 DefaultCredentials。

以下是 SmtpClient 类的一些常用方法 -

先生。 方法及说明
1

处置

向 SMTP 服务器发送 QUIT 消息,正常结束 TCP 连接,并释放 SmtpClient 类当前实例使用的所有资源。

2

处置(布尔值)

向 SMTP 服务器发送 QUIT 消息,正常结束 TCP 连接,释放 SmtpClient 类当前实例使用的所有资源,并可以选择处置托管资源。

3

发送完成

引发 SendCompleted 事件。

4

发送(邮件消息)

将指定的邮件发送到 SMTP 服务器进行传递。

5

发送(字符串,字符串,字符串,字符串)

将指定的电子邮件消息发送到 SMTP 服务器进行传递。消息发送者、接收者、主题和消息正文使用 String 对象指定。

6

SendAsync(邮件消息,对象)

将指定的电子邮件消息发送到 SMTP 服务器进行传递。此方法不会阻塞调用线程,并允许调用者将对象传递给操作完成时调用的方法。

7

SendAsync(字符串,字符串,字符串,字符串,对象)

将电子邮件消息发送到 SMTP 服务器进行传递。消息发送者、接收者、主题和消息正文使用 String 对象指定。此方法不会阻塞调用线程,并允许调用者将对象传递给操作完成时调用的方法。

8

发送异步取消

取消发送电子邮件的异步操作。

9

SendMailAsync(邮件消息)

将指定的消息发送到 SMTP 服务器以作为异步操作进行传递。

10

SendMailAsync(字符串,字符串,字符串,字符串)

将指定的消息发送到 SMTP 服务器以作为异步操作进行传递。。消息发送者、接收者、主题和消息正文使用 String 对象指定。

11

转字符串

返回表示当前对象的字符串。

以下示例演示如何使用 SmtpClient 类发送邮件。在这方面需要注意以下几点 -

  • 您必须指定用于发送电子邮件的 SMTP 主机服务器。对于不同的主机服务器,主机和端口属性将有所不同。我们将使用 Gmail 服务器。

  • 如果 SMTP 服务器需要,您需要提供身份验证凭据。

  • 您还应该分别使用MailMessage.FromMailMessage.To属性提供发件人的电子邮件地址以及收件人的一个或多个电子邮件地址。

  • 您还应该使用MailMessage.Body属性指定消息内容。

例子

在此示例中,让我们创建一个发送电子邮件的简单应用程序。采取以下步骤 -

  • 在窗体中添加三个标签、三个文本框和一个按钮控件。

  • 将标签的文本属性分别更改为“发件人”、“收件人:”和“消息:”。

  • 将文本的名称属性分别更改为 txtFrom、txtTo 和 txtMessage。

  • 将按钮控件的文本属性更改为“发送”

  • 在代码编辑器中添加以下代码。

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 工具栏上的“开始”按钮执行并运行上述代码时,它将显示以下窗口,您将使用该窗口发送电子邮件,请自行尝试。

从 VB.Net 发送电子邮件