【发布时间】:2022-06-11 16:09:01
【问题描述】:
我在我们的生产车间运行了一个 winform 应用程序,它发送电子邮件进行报告,所以从昨天开始它无法发送电子邮件,我收到了这条消息
“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 需要身份验证。”
我发现 google 不再支持 3rd 方应用程序,它不允许安全性较低的应用程序 这是来自谷歌不太安全的应用程序 不太安全的应用访问:
某些应用和设备使用安全性较低的登录技术,这会使您的帐户容易受到攻击。您可以关闭我们推荐的这些应用程序的访问权限,或者如果您想在有风险的情况下使用它们,请将其打开。如果不使用,Google 会自动关闭此设置。 此设置不再可用。了解更多
所以我尝试添加 SmtpServer.UseDefaultCredentials = false;但没有任何效果,我认为问题在于谷歌不再支持第三方访问电子邮件。 这是我的代码
try
{
MailMessage mail = new MailMessage();
System.Net.Mail.SmtpClient SmtpServer = new
System.Net.Mail.SmtpClient("smtp.gmail.com");
string sender = "user@gmail.com";
mail.From = new MailAddress(sender);
mail.To.Add("receiver@plastikon.com");
;
mail.Priority = MailPriority.High;
mail.Subject = subject;
mail.IsBodyHtml = true;
mail.Body = ($"{body} \n Name of computer: { HostName} ");
SmtpServer.Port = 587;
SmtpServer.Credentials = new
System.Net.NetworkCredential("user@gmail.com", "Password");
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Send(mail);
}
问题是:是否有解决方案,或者任何人都可以向我推荐另一种发送电子邮件或 API 或其他方式的方法?
【问题讨论】:
-
GMAIL 的用户/密码身份验证已停用,afaik。您需要切换到另一种身份验证方法。我会试着找到一个谷歌文档。