0

好的,所以我尝试向在文本框中输入电子邮件的用户发送电子邮件。我对我应该做什么有了一个基本的想法,但我很困惑我应该在哪里放置 CMTPClient()、凭据以及来自哪里。什么电子邮件应该去那里。我尝试输入我的电子邮件地址和凭据,但我不断收到此错误“SMTP 服务器需要安全连接或客户端未经过身份验证”。这是我的代码

        Try
        Dim username As String
        username = TextBox1.Text
        Dim SmtpServer As New SmtpClient("smtp.gmail.com")
        Dim mail As New MailMessage()
        SmtpServer.Credentials = New System.Net.NetworkCredential("what username goes 
        here", "what password goes here")
        SmtpServer.Port = 587
        mail = New MailMessage()
        mail.From = New MailAddress("what email should i put here")
        mail.To.Add(username)
        mail.Subject = "Qustions"
        mail.Body = "This is for testing your mother"
        SmtpServer.Send(mail)
        MsgBox("mail send")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
4

2 回答 2

1

SmtpServer.EnableSsl = True调用前使用SmtpServer.Send(mail)

“SMTP 服务器需要安全连接或客户端未通过身份验证”

表示 SMTP 服务器在启用 SSL(加密)的连接上工作

于 2013-04-18T00:23:15.560 回答
0

请记住,gmail 不只是开放给所有人使用。否则,好吧,你知道:垃圾邮件。现在,垃圾邮件发送者必须千方百计寻找或创建可用的 smtp 网关。如果有任何主要提供商让自己处于开放状态,请考虑一下您现在收到的所有垃圾邮件并将其乘以大约 1000。

所以你需要有一个 gmail 帐户才能使用他们的 smtp 服务器。不仅如此,如果您每天发送超过 400 封电子邮件,您可能需要一个特殊帐户,或者一个特殊的、有信誉的群发邮件的帐户。这些邮件会向您收取每条消息的费用,但这是值得的,因为否则每天有超过几条消息会引起注意并导致您发送的任何内容都被过滤为垃圾邮件......而这仍在传输中,甚至在它到达之前目的地的邮件主机也要在那里检查。您基本上是在支付滋扰费,以确保您的信息是认真的,而不是大量垃圾。

顺便说一句,如果您知道您的音量足够低,并且在您拥有有效的 gmail 帐户后,您只需要进行一些更改:

Try
    Dim SmtpServer As New SmtpClient("smtp.gmail.com")
    Dim mail As New MailMessage()
    SmtpServer.Credentials = New System.Net.NetworkCredential("gmailusername@gmail.com", "your gmail password")
    SmtpServer.EnableSsl = True
    SmtpServer.Port = 587
    mail = New MailMessage()
    mail.From = New MailAddress("gmailusername@gmail.com")
    mail.To.Add(TextBox1.Text)
    mail.Subject = "Questions"
    mail.Body = "This is for testing your mother"
    SmtpServer.Send(mail)
    MsgBox("mail sent")
Catch ex As Exception
    MsgBox(ex.ToString)
End Try
于 2013-04-18T00:59:46.937 回答