在发送电子邮件vb.net时,对象引用未设置为对象的实例



我想发送电子邮件应用程序

我使用了新关键字,但仍然存在问题。

Imports System.Net.Mail
Public Class Form1
  Private myMsg As MailMessage
  Private smtpSender As SmtpClient
  Private Sub CreateMessage()
      myMsg.From = New MailAddress(txtForm.Text.Trim)
      myMsg.To.Add(txtTo.Text.Trim)
      myMsg.Subject = txtSubject.Text
      myMsg.Body = txtBody.Text
      myMsg.Priority = MailPriority.Normal
  End Sub
  Private Sub createSmtp()
      smtpSender.Credentials = New Net.NetworkCredential(txtForm.Text.Trim, txtPass.Text.Trim)
      smtpSender.EnableSsl = True
      smtpSender.Host = "smtp.live.com"
      smtpSender.Port = "587"
  End Sub
  Private Sub sendMessage()
      Try
          smtpSender.Send(myMsg)
      Catch ex As Exception
          MessageBox.Show(ex.ToString())
      End Try
  End Sub
  Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
      CreateMessage()
      createSmtp()
      sendMessage()
  End Sub
  Private Sub btnResetField_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnResetField.Click
      txtBody.Clear()
      txtForm.Clear()
      txtPass.Clear()
      txtSubject.Clear()
      txtTo.Clear()
  End Sub
End Class

此行中的错误:myMsg.From = New MailAddress(txtForm.Text.Trim)

此行不完整: Private myMsg As MailMessage
它被声明为变量,但从未实例化为新对象。

应该是:

 Private myMsg As New MailMessage
 Private smtpSender As New SmtpClient

Visual Basic中的对象和类

最新更新