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 |
将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 = "[email protected]" txtTo.Text = "[email protected]" Me.Text = "VB.Net发送邮件示例-vcclass.net" 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("[email protected]", "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工具栏上的“开始”按钮运行时,它将显示以下窗口,将使用该窗口发送电子邮件,自己尝试。
猿狮妹
2023-03-18
VB
Net
发送
电子邮件
编程课程
热门教程
1 VB.Net教程
VB.Net是Microsoft开发的一种简单的,现代的,面向对象的计算机编程语言,它将.NET Framework和公共语言运行时的强大功能与Visual Basic的优势相结合。本教程将介绍和讲解基本的VB.Net编程,并讲解各种有关VB.Net编程语言的基础、高级概念。
2 VB.Net Excel工作表
VB.Net支持Microsoft Excel 2010的COM对象模型和应用程序之间的互操作性。
要应用程序中使用这种互操作性,需要在Windows窗体应用程序中导入名称空间Microsoft
3 VB.Net程序结构
在学习VB.Net编程语言的基本构建块之前,先来看看一个最基本的VB.Net程序结构,以便可以在以后的章节中作为参考来理解程序代码块。
VB.Net Hello World示
4 VB.Net开发环境安装配置
在本章中,我们将讨论和学习可用于创建VB.Net应用程序的工具。
我们已经提到,VB.Net是.Net框架的一部分,用于编写.Net应用程序。 因此,在讨论用于运
5 VB.Net子程序(Sub)
在前面的章节中提到:子程序是不返回任何值的程序。到目前为止,在前面所有的例子中一直使用子过程Main。 在这些教程中,我们一直在编写控制台应
6 VB.Net第一个程序(Helloworld)
为了演示如何使用VS 2017创建一个简单的VB.net应用程序,这里将使用VS 2017来创建一个简单的“Hello,World”的控制台应用应用程序。这个例子将使用VB.NET
7 VB.Net数据类型
数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型决定了它在存储器中占用多少空间以及如何解释存储的位模式。
VB.Net数据类型VB.
8 VB.Net类和对象
当定义一个类时,就定义了一个数据类型的蓝图(或模板)。这实际上并没有定义任何数据,但它确实定义了类名和含义,即该类的一个对象将包含哪些内
9 VB.Net正则表达式
正则表达式是可以与输入文本进行匹配的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符文字,运算符或构造组成。
用
10 VB.Net基本控件
对象是通过使用工具箱控件在Visual Basic 窗体上创建的一种用户界面元素。 实际上,在Visual Basic中,窗体(Form)本身就是一个对象。 每个Visual Basic 控件都