0

我正在尝试制作一个简单的电子邮件发送程序,但是当它说object reference not set to an instance of an object

Try
       Dim mail As MailMessage
       Dim client As SmtpClient
       Dim SmtpServer As New SmtpClient()
       Dim fromAddress As String
       Dim toAddress1 As String
       Dim toAddress2 As String
       Dim toAddress3 As String
       Dim subject As String
       Dim message As String
       SmtpServer.Credentials = New Net.NetworkCredential("*********@gmail.com", "**********")
       client.UseDefaultCredentials = False

       fromAddress = FromEmail.Text
       If ToEmail1.Visible = True Then
             toAddress1 = ToEmail1.Text
       ElseIf ToEmail1.Visible = True And ToEmail2.Visible = True Then
             toAddress1 = ToEmail1.Text
             toAddress2 = ToEmail2.Text
       ElseIf ToEmail1.Visible = True And ToEmail2.Visible = True And ToEmail3.Visible = True Then
             toAddress1 = ToEmail1.Text
             toAddress2 = ToEmail2.Text
             toAddress3 = ToEmail3.Text
       End If

       subject = "Subject"
       Message = "Message"

       mail = New MailMessage(fromAddress, toAddress1, subject, Message)
       client = New SmtpClient("Smtp.live.com")

       client.Port = 587
       Dim SMTPUserInfo As New System.Net.NetworkCredential("user@hotmail.com", "password")
       client.Credentials = SMTPUserInfo

        client.Send(mail)
        MsgBox("sent")
Catch ex As Exception
            MsgBox(ex.Message.ToString())
End Try
4

1 回答 1

0

你声明了两个 smtpclients

 Dim client As SmtpClient
 Dim SmtpServer As New SmtpClient()

你实例化了SmtpServer,但没有client。然后你做

 client.UseDefaultCredentials = False

我想这是引发异常的地方。该代码看起来像是有一些行从谷歌帐户通过 SmtpServer 发送一些邮件,而其他行从 hotmail 帐户通过客户端发送一些邮件。此外,SmtpServer 正在使用 config.sys 中定义的一些服务器。

于 2014-03-04T14:00:01.617 回答