Visual Basic 发送邮件
VB 支持从应用程序发送电子邮件。
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 服务器发送退出消息,正常结束 TCP 连接,并释放 SmtpClient 类的当前实例使用的所有资源。 |
2 | Dispose(Boolean) 向 SMTP 服务器发送退出消息,正常结束 TCP 连接,释放 SmtpClient 类的当前实例使用的所有资源,并有选择地处置托管资源。 |
3 | OnSendCompleted 触发 SendCompleted 事件。 |
4 | Send(MailMessage) 将指定的邮件发送到 SMTP 服务器以进行传递。 |
5 | Send(String, String, String, String) 将指定的电子邮件发送到 SMTP 服务器以进行传递使用字符串对象指定消息发件人、收件人、主题和消息正文。 |
6 | SendAsync(MailMessage, Object) 将指定的电子邮件发送到 SMTP 服务器以进行传递此方法不会阻止调用线程,并允许调用方将对象传递给操作完成时调用的方法。 |
7 | SendAsync(String, String, String, String, Object) 将电子邮件发送到 SMTP 服务器以进行传递使用字符串对象指定消息发件人、收件人、主题和消息正文此方法不会阻止调用线程,并允许调用方将对象传递给操作完成时调用的方法。 |
8 | SendAsyncCancel 取消发送电子邮件的异步操作。 |
9 | SendMailAsync(MailMessage) 将指定的邮件作为异步操作发送到 SMTP 服务器以进行传递。 |
10 | SendMailAsync(String, String, String, String) 将指定的邮件作为异步操作发送到SMTP服务器进行传递使用字符串对象指定消息发件人、收件人、主题和消息正文。 |
11 | ToString 返回表示当前对象的字符串。 |
下面的实例演示如何使用 SmtpClient 类发送邮件。
在这方面应注意以下几点:
- 您必须指定用于发送电子邮件的 SMTP 主机服务器。对于不同的主机服务器,主机和端口属性将不同。我们将使用 gmail 服务器。
- 如果 SMTP 服务器需要,您需要提供身份 验证 凭据。
- 您还应该提供发件人的电子邮件地址和使用邮件消息的收件人的电子邮件地址。分别使用了
MailMessage.From
和MailMessage.To
属性。 - 您还应该使用
MailMessage.Body
指定消息内容。
实例
在本例中,让我们创建一个发送电子邮件的简单应用程序。
使用以下步骤:
- 在表单中添加三个标签、三个文本框和一个按钮控件。
- 将标签的文本属性分别更改为- 'From', 'To:' 和 'Message:'。
- 将文本的名称属性分别更改为 txtFrom、txtTo 和 txtMessage。
- 将 button 控件的 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 = "cankaoshouce.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 工具栏上的开始按钮执行并运行上述代码时,它将显示以下窗口,您将使用该窗口发送电子邮件,请自己尝试。