VB.Net发送电子邮件
精华
小牛编辑
146浏览
2023-03-14
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 |
将QUIT消息发送到SMTP服务器,正常结束TCP连接,并释放当前SmtpClient 实例使用的所有资源。 |
2 | Dispose(Boolean) |
将QUIT消息发送到SMTP服务器,正常结束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主机服务器。主机和端口属性对于不同的主机服务器是不同的。这个示例中将使用QQ邮件服务器。
- 如果SMTP服务器需要,需要为
Credentials
颁发证书。 - 分别使用
MailMessage.From
和MailMessage.To
属性提供发件人的电子邮件地址和收件人的电子邮件地址。 - 使用
MailMessage.Body
属性指定邮件内容。
示例
在这个例子中,创建一个简单的应用程序来发送电子邮件。参考以下步骤:
- 在窗体中添加三个标签,三个文本框和一个按钮控件。
- 将标签的
Text
属性分别更改为:“发送者:”,“接收者:”和“邮件内容:”。 - 将文本的
Name
属性分别更改为:txtFrom
,txtTo
和txtMessage
。 - 将按钮控件的
Text
属性更改为“发送”
设计窗体的效果如下所示 -
在代码编辑器中添加下面的代码 -
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.
txtFrom.Text = "769728683@qq.com"
txtTo.Text = "769728683@qq.com"
Me.Text = "VB.Net发送邮件示例-yiibai.com"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
'Dim Smtp_Server As New SmtpClient
Dim smtp As New System.Net.Mail.SmtpClient("smtp.qq.com", 25)
Dim mail As New System.Net.Mail.MailMessage()
smtp.UseDefaultCredentials = False
smtp.Credentials = New System.Net.NetworkCredential("29888814@qq.com", "zrp29888814encaei")
mail.Subject = "邮件主题a"
mail.SubjectEncoding = System.Text.Encoding.UTF8
mail.BodyEncoding = System.Text.Encoding.UTF8
mail.From = New System.Net.Mail.MailAddress(txtFrom.Text)
mail.Priority = System.Net.Mail.MailPriority.Normal
mail.IsBodyHtml = True
mail.Body = txtMessage.Text
mail.To.Add(txtTo.Text)
smtp.Send(mail)
MsgBox("邮件已发送~!")
Catch error_t As Exception
MsgBox(error_t.ToString)
End Try
End Sub
End Class
注意:必须提供您的QQ邮箱账号和真实密码的凭据,才能登录SMTP服务器发送邮件。
首先我们要知道用VB.Net代理登录QQ邮箱发邮件,是需要更改自己QQ邮箱设置的。在这里大家需要做两件事情:邮箱开启SMTP功能 、获得授权码。下面来看看如何更改模板代码,实现使用VB.Net登录QQ邮箱发送QQ邮件。
注意:也可以使用其他服务商的 SMTP 访问(QQ、网易、Gmail等)。
使用QQ邮件发送邮件之前如何设置授权码,参考:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
当执行上面的代码并使用Microsoft Visual Studio工具栏上的“开始”按钮运行时,它将显示以下窗口,将使用该窗口发送电子邮件,自己尝试。