SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1 Authentication Required.?8

时间:2015-03-16 10:25:18

标签: c# email authentication

我是使用c#创建示例电子邮件发件人,但它显示错误是:

SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。

        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
        mail.To.Add("toAddress@gmail.com");
        mail.From = new MailAddress("fromAddress@gmail.com", "Test Mail !", System.Text.Encoding.UTF8);
        mail.Subject = "Test Mail";
        mail.SubjectEncoding = System.Text.Encoding.UTF8;
        mail.Body = "Test message";
        mail.BodyEncoding = System.Text.Encoding.UTF8;
        mail.IsBodyHtml = true;
        mail.Priority = MailPriority.High;
        SmtpClient client = new SmtpClient();
        client.Credentials = new System.Net.NetworkCredential("myMail@gmail.com", "password");
        client.Port = 587;
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true;
        client.UseDefaultCredentials = true;
        client.Send(mail);

网络配置:

<system.net>
    <mailSettings>
      <smtp from="myMail@gmail.com">
        <network host="smtp.gmail.com" password="password"
          port="587" userName="myMail@gmail.com" />
      </smtp>
    </mailSettings>
</system.net>

2 个答案:

答案 0 :(得分:1)

如果您启用了双因素身份验证,则需要为自己的Google帐户自行生成应用密码。

生成此类密码的步骤如下([Google page] | [Archived page]):

  
      
  1. 访问您的App passwords页面。系统可能会要求您登录Google帐户。
  2.   
  3. 在底部,点击选择应用,然后选择您正在使用的应用。
  4.   
  5. 单击选择设备,然后选择您正在使用的设备。
  6.         

         
        
    1. 点击生成。
    2.   
    3. 按照说明在设备上输入应用程序密码(黄色栏中的16个字符代码)。
    4.         

           
          
      1. 点击完成。
      2.         

        点击完成后,您将再次看不到该应用密码。   但是,您将看到已创建App的应用程序和设备列表   密码。

然后,在您的NetworkCredentials中,将密码替换为生成的16位密码。

答案 1 :(得分:0)

尝试按代码发送邮件,当您收到错误时,请登录您的Gmail帐户并在2或3分钟后检查收件箱。您将收到这样的邮件:

#;
#;

enter image description here

#;
#;

enter image description here