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

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

我使用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); 

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

错误:

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

已经做过GMAIL的2次以下行动了。

无安全的应用程序:打开

-2步validation:关闭

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

注册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); 

当您尝试从不同时区/ IP /计算机登录时,通常会发生这种情况。 生产服务器和您使用的邮件ID都位于不同的时区。 选择任何一种解决方案:

  1. 通过远程访问登录到生产服务器,然后使用您的凭据登录gmail一次。 他们会要求确认,确认并注销。

要么

  1. 将gmail登录到本地计算机,按照此链接选择查看此活动并采取适当的操作。

我在我的机器上运行了这个代码,它有效。 可能是评论线不需要……

 MailMessage mailMessage = new MailMessage("From_User_Email", "To_Whom_Email"); 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 = "From_User_Email", Password = "User_Password" }; //smtpClient.UseDefaultCredentials = false; smtpClient.Send(mailMessage); 

请尝试以下代码:

 UseDefaultCredentials = false; Credentials = new NetworkCredential("xxx@gmail.com", "xxxpassword"); 

当您尝试从代码发送邮件时,您发现错误“SMTP服务器需要安全连接或客户端未经过身份validation。服务器响应是:5.5.1需要身份validation”,而不是由于以下情况可能发生的错误在这里有很好的解释,请看看

同时在此处检查阻止的登录信息 , 此处设置安全设备

您也可以尝试以下代码:

  MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("xxx@gmail.com"); mail.To.Add("xxx@gmail.com"); mail.Subject = "xxxxx "; mail.Body += " "; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += ""; mail.Body += "
User Name : Hai
Password : xxxxxx
"; mail.Body += ""; mail.Body += ""; mail.IsBodyHtml = true; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("xxx@gmail.com", "xxxpassword"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail);

谢谢

使用浏览器登录以下gmail帐户并按照validation过程进行操作。 您可能已经发送了大量电子邮件,并且帐户被临时阻止。

确保您有一个强密码。 我遇到了gmail的问题,因为我的密码只有字母和数字。 我改为使用大写和小写字母,数字和符号,现在它正在工作:“在密码中使用数字,符号和大写和小写字母混合使得有人猜测你的密码更难。例如,八 – 带有数字,符号和大小写混合字母的字符密码更难以猜测,因为它的可能组合数量是只有小写字母的八字符密码的30,000倍。“ https://support.google.com/accounts/answer/32040?hl=en

我的案子解决了这个解决方案6

提交以下行:

 smtpClient.UseDefaultCredentials = false; 

如果它不工作尝试端口25而不是578。

https://productforums.google.com/forum/#!topic/gmail/w8hNo56tivE;context-place=topicsearchin/gmail/ $ 20SMTP $ 20server $ 20需要$ 20a $ 20secure $ 20connection $ 20或$ 20 $ 20client $ 20是$ 20没有$ 20authenticated。$第二十条$ 20server $ 20response $ 20was $ 3A $ 205.5.1 $ 20Authentication $ 20Required