使用Gmail发送电子邮件.错误:服务器响应为:5.5.1需要身份验证

ide*_*nge 2 c# asp.net email

对不起,我看到很多关于此事的类似帖子,但从来没有找到任何解决我的问题,所以我决定发布它.

我使用ASP.NET c#使用gmail以编程方式发送电子邮件,代码如下.

 string EmailAddress = senderemail;
    MailMessage mailMessage = new MailMessage(EmailAddress, EmailAddress);
    mailMessage.Subject = "This is a test email";
    mailMessage.Body = "This is a test email. Please reply if you receive it.";

    SmtpClient smtpClient = new SmtpClient();
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtpClient.EnableSsl = true;
    smtpClient.Host = "smtp.gmail.com";
    smtpClient.Port = 587;

    smtpClient.Credentials = new System.Net.NetworkCredential()
    {
        UserName = EmailAddress,
        Password = senderpassword
    };
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)

我和其他人一样收到了这个错误

错误:

SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.了解更多信息.

GMAIL已经做了以下两项行动.

无安全的应用程序:打开

-2步验证:关闭

我不在乎这个gmail帐户是安全还是什么.我不需要此帐户的任何安全性.我该怎么办?

小智 17

注册Gmail并转到https://www.google.com/settings/security/lesssecureapps,您可以在其中查看设置.访问安全性较低的应用

关闭(默认)==>开启

添加此代码后,

  MailMessage mail = new MailMessage("fromm@gmail.com", "toaddress@gmail.com");
                mail.Subject = "TestEmailImportant";
                mail.Body = "This mail is to test if this program is working";

                SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);

                smtpClient.Credentials = new System.Net.NetworkCredential()
                {
                    UserName = "XXXXXX@gmail.com",
                    Password = "YYYYYYYY"
                };

                smtpClient.EnableSsl = true;
                System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s,
                        System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                        System.Security.Cryptography.X509Certificates.X509Chain chain,
                        System.Net.Security.SslPolicyErrors sslPolicyErrors)
                {
                    return true;
                };

                smtpClient.Send(mail);
Run Code Online (Sandbox Code Playgroud)