对不起,我看到很多关于此事的类似帖子,但从未找到解决我的问题,所以我决定发布。
我正在使用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服务器需要安全连接,否则客户端不需要 认证。服务器响应为:5.5.1需要身份验证。 了解更多信息。
GMAIL已经做了以下两项行动。
- 无安全应用:开启
-2步验证:关闭
我不在乎这个gmail帐户是安全还是什么。我不需要此帐户的任何安全性。我该怎么办?
答案 0 :(得分:14)
注册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);
答案 1 :(得分:1)
当您尝试从不同时区/ IP /计算机登录时,通常会发生这种情况。生产服务器和您使用的邮件ID都位于不同的时区。选择任何一种解决方案:
或者
答案 2 :(得分:0)
我在我的机器上运行了这个代码,它可以运行。 可能是评论线不需要.....
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);
答案 3 :(得分:0)
请尝试以下代码:
UseDefaultCredentials = false;
Credentials = new NetworkCredential("xxx@gmail.com", "xxxpassword");
当您尝试从代码发送邮件时,您发现错误“SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证”,而不是由于这些案例经过精心解释here,请看看
您也可以尝试以下代码:
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 += " <html>";
mail.Body += "<body>";
mail.Body += "<table>";
mail.Body += "<tr>";
mail.Body += "<td>User Name : </td><td> Hai </td>";
mail.Body += "</tr>";
mail.Body += "<tr>";
mail.Body += "<td>Password : </td><td>xxxxxx</td>";
mail.Body += "</tr>";
mail.Body += "</table>";
mail.Body += "</body>";
mail.Body += "</html>";
mail.IsBodyHtml = true;
SmtpServer.Port = 587;
SmtpServer.Credentials = new
System.Net.NetworkCredential("xxx@gmail.com", "xxxpassword");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
由于
答案 4 :(得分:0)
使用浏览器登录以下gmail帐户并按照验证过程进行操作。您可能已经发送了大量电子邮件,并且该帐户已暂时被屏蔽。
答案 5 :(得分:0)
确保您拥有强密码。我遇到了gmail的问题,因为我的密码只有字母和数字。我改为使用大写和小写字母,数字和符号,现在它正在工作: “在密码中使用数字,符号以及大写和小写字母混合使得某人猜测您的密码更加困难。例如,带有数字,符号和大小写混合字母的八字符密码更难以猜测,因为它具有可能的组合数量是八个字符密码的30,000倍,只有小写字母。“ https://support.google.com/accounts/answer/32040?hl=en
答案 6 :(得分:0)
我的案例解决了这个解决方案6
提交以下一行:
smtpClient.UseDefaultCredentials = false;
如果不起作用,请尝试端口25而不是578。
https://productforums.google.com/forum/#!topic/gmail/w8hNo56tivE;context-place=topicsearchin/gmail/The $ $ 20SMTP $ 20server $ 20requires 20A $ $ 20secure $ 20connection $ 20or第二十条$ $ 20client $ 20was $ 20not 20authenticated。$ $第二十条$ 20server $ 20response $ 20was 3A $ 205.5.1 $ $ 20Authentication 20Required
答案 7 :(得分:0)
有时候,如果您之前没有从此PC登录,则只需要从此计算机登录gmail。 gmail会要求您验证并确认新PC。
答案 8 :(得分:0)