在vb.net中向用户发送电子邮件

时间:2013-04-18 00:15:41

标签: vb.net

好的,所以即时通讯尝试将电子邮件发送给将电子邮件输入文本框的用户。我有一个基本的想法,我应该做什么,但我很困惑我应该放在哪里,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

2 个答案:

答案 0 :(得分:1)

在致电SmtpServer.EnableSsl = True

之前使用SmtpServer.Send(mail)
  

“SMTP服务器需要安全连接,否则客户端不需要   认证“

表示SMTP服务器使用SSL启用(加密)连接

答案 1 :(得分: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