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 获取或设置一个值,该值指定同步发送调用超时之前的时间量。 |
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(消息):"。
将文本的名称属性分别更改为 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 ' 设置表单的标题栏文本。 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 工具栏上的开始按钮运行时,它将显示以下窗口,您将用它来发送电子邮件 ,可以自己尝试一下。