- VB.Net 基础教程
- VB.Net - 首页
- VB.Net - 概述
- VB.Net - 环境设置
- VB.Net - 程序结构
- VB.Net - 基本语法
- VB.Net - 数据类型
- VB.Net - 变量
- VB.Net - 常量
- VB.Net - 修饰符
- VB.Net - 语句
- VB.Net - 指令
- VB.Net - 运算符
- VB.Net - 决策
- VB.Net - 循环
- VB.Net - 字符串
- VB.Net - 日期和时间
- VB.Net - 数组
- VB.Net - 集合
- VB.Net - 函数
- VB.Net - 子过程
- VB.Net - 类和对象
- VB.Net - 异常处理
- VB.Net - 文件处理
- VB.Net - 基本控件
- VB.Net - 对话框
- VB.Net - 高级窗体
- VB.Net - 事件处理
- VB.Net 高级教程
- VB.Net - 正则表达式
- VB.Net - 数据库访问
- VB.Net - Excel 表格
- VB.Net - 发送电子邮件
- VB.Net - XML 处理
- VB.Net - Web 编程
- VB.Net 有用资源
- VB.Net - 快速指南
- VB.Net - 有用资源
- VB.Net - 讨论
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 无法完成 Send 或 SendAsync 操作时抛出的异常。 |
SmtpClient 类
SmtpClient 类允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。
以下是 SmtpClient 类的一些常用属性:
| 序号 | 属性及描述 |
|---|---|
| 1 | ClientCertificates 指定应使用哪些证书来建立安全套接字层 (SSL) 连接。 |
| 2 | Credentials 获取或设置用于对发件人进行身份验证的凭据。 |
| 3 | EnableSsl 指定 SmtpClient 是否使用安全套接字层 (SSL) 来加密连接。 |
| 4 | Host 获取或设置用于 SMTP 事务的主机名称或 IP 地址。 |
| 5 | Port 获取或设置用于 SMTP 事务的端口。 |
| 6 |
Timeout 获取或设置一个值,该值指定同步 Send 调用超时的时间量。 |
| 7 | UseDefaultCredentials 获取或设置一个布尔值,该值控制是否将 DefaultCredentials 与请求一起发送。 |
以下是 SmtpClient 类的一些常用方法:
| 序号 | 方法及描述 |
|---|---|
| 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(String, String, String, String) 将指定的消息发送到 SMTP 服务器以进行传递,作为异步操作。发件人、收件人、主题和消息正文使用 String 对象指定。 |
| 11 |
ToString 返回表示当前对象的字符串。 |
以下示例演示如何使用 SmtpClient 类发送邮件。在这方面需要注意以下几点:
您必须指定用于发送电子邮件的 SMTP 主机服务器。Host 和 Port 属性对于不同的主机服务器将不同。我们将使用 Gmail 服务器。
如果 SMTP 服务器需要,您需要提供Credentials 进行身份验证。
您还应该分别使用MailMessage.From 和MailMessage.To 属性提供发件人的电子邮件地址和收件人的电子邮件地址。
您还应该使用MailMessage.Body 属性指定邮件内容。
示例
在此示例中,让我们创建一个简单的应用程序来发送电子邮件。请按照以下步骤操作:
在窗体中添加三个标签、三个文本框和一个按钮控件。
将标签的 Text 属性分别更改为“From”、“To:”和“Message:”。
将文本框的 Name 属性分别更改为 txtFrom、txtTo 和 txtMessage。
将按钮控件的 Text 属性更改为“Send”。
在代码编辑器中添加以下代码。
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 工具栏上的“启动”按钮运行时,它将显示以下窗口,您可以使用它来发送电子邮件,请亲自尝试。