System.Net.Mail.SmtpException SMTP服务器需要安全连接或客户端未经过身份验证

时间:2012-02-14 16:03:27

标签: vb.net email smtp gmail system.net.mail

我正在尝试从我的vb.net表单应用程序发送SMTP电子邮件。应用此代码时,我收到以下错误。我做错了什么?

代码:

Imports System.Net.Mail

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim SmtpServer As New SmtpClient()
            Dim mail As New MailMessage()
            SmtpServer.Credentials = New  _
            Net.NetworkCredential("myemail@gmail.com", "mypassword")
            SmtpServer.Port = 587
            SmtpServer.Host = "smtp.gmail.com"
            mail = New MailMessage()
            mail.From = New MailAddress("myemail@gmail.com")
            mail.To.Add("sendto@hotmail.co.uk")
            mail.Subject = "Test Mail"
            mail.Body = "This is for testing SMTP mail from GMAIL"
            SmtpServer.Send(mail)
            MsgBox("mail send")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class

错误:

  

System.Net.Mail.SmtpException:SMTP服务器需要安全   连接或客户端未经过身份验证。服务器响应   是:5.7.0必须首先发出STARTTLS命令

Error Message

3 个答案:

答案 0 :(得分:3)

  1. 检查登录名和密码是否正确;
  2. 使用SmtpServer.EnableSsl = true;
  3. Gmail默认使用凭据(用户和密码)禁用了访问权限,您需要转到此页面:https://www.google.com/settings/security/lesssecureapps和“启用较少安全应用”,这意味着:“使用用户和密码启用应用登录” 。更多详情:https://support.google.com/accounts/answer/6010255

答案 1 :(得分:0)

看看这是否有帮助;添加

SmtpServer.EnableSSL= true

答案 2 :(得分:-1)

我知道这是去年,但我认为我应该在五分钟前发布答案我有同样的问题。

基本上,您的登录凭据不正确,需要更改。

还要感谢之前的回答,那段代码允许我通过SSL加密发送电子邮件(I Hope LOL)。