Categories: VB.Net 教程

VB.Net – 发送邮件

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

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

SN 描述
1 Attachment
表示对电子邮件的附件。
2 AttachmentCollection 存储要作为电子邮件的一部分发送的附件。
3 MailAddress
表示电子邮件发件人或收件人的地址。
4 MailAddressCollection 存储与电子邮件相关联的电子邮件地址。
5 MailMessage
表示可以使用SmtpClient类发送的电子邮件。
6 SmtpClient 允许应用程序使用简单邮件传输协议(SMTP)发送电子邮件。
7 SmtpException 表示当SmtpClient无法完成发送或SendAsync操作时抛出的异常。

SmtpClient类

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

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

SN 属性 描述
1 ClientCertificates 指定应使用哪些证书建立安全套接字层(SSL)连接。
2 Credentials
获取或设置用于验证发件人的凭据。
3 EnableSsl 指定SmtpClient是否使用安全套接字层(SSL)加密连接。
4 Host
获取或设置用于SMTP事务的主机的名称或IP地址。
5 Port
获取或设置用于SMTP事务的端口。
6 Timeout
获取或设置一个值,该值指定同步发送调用超时的时间量。
7 UseDefaultCredentials 获取或设置一个布尔值,该值控制是否随请求一起发送DefaultCredentials。

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

SN 方法和说明
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(MailMessage)
将指定的消息发送到SMTP服务器以作为异步操作进行传递。

11

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

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

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

  • 如果SMTP服务器需要,您需要授予认证凭据。

  • 您还应该分别使用MailMessage.From和MailMessage.To属性提供发件人的电子邮件地址和收件人的电子邮件地址。

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

示例

在这个例子中,让我们创建一个发送电子邮件的简单应用程序。 执行以下步骤:

  • 在表单中添加三个标签,三个文本框和一个按钮控件。

  • 将标签的文本属性分别更改为 – “From”,“To:”和“Message:”。

  • 将文本的名称属性分别更改为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工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口,您将使用该窗口发送电子邮件,自行尝试。


admin

这个人很懒,什么都没有留下~

Share
Published by
admin

Recent Posts

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

2 天 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

1 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

2 周 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

2 周 ago

聊聊React和Vue组件更新的实现及区别

React 和 Vue 都是当…

3 周 ago