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
    获取或设置一个布尔值,该值控制是否随请求发送 DefaultCredential。
    以下是 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 主机服务器。这HostPort不同主机服务器的属性会有所不同。我们将使用 gmail 服务器。
    • 你需要给 Credentials 用于身份验证,如果 SMTP 服务器要求。
    • 您还应该提供发件人的电子邮件地址和收件人的电子邮件地址或使用 MailMessage.FromMailMessage.To 属性,分别。
    • 您还应该使用 MailMessage.Body 财产。
  • 例子

    在这个例子中,让我们创建一个简单的应用程序来发送电子邮件。采取以下步骤 -
    • 在表单中添加三个标签、三个文本框和一个按钮控件。
    • 将标签的文本属性分别更改为 - 'From'、'To:' 和 'Message:'。
    • 将文本的名称属性分别更改为 txtFrom、txtTo 和 txtMessage。
    • 将按钮控件的文本属性更改为“发送”
    • 在代码编辑器中添加以下代码。
    
    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 = "cainiaoya.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 地址和真实密码以获取凭据。
    • 当上面的代码被执行并运行时使用 Start Microsoft Visual Studio 工具栏上可用的按钮,它将显示以下窗口,您将使用该窗口发送电子邮件,请自行尝试。
    从 VB.Net 发送电子邮件