我有一个 winform 应用程序在我们的生产车间运行,它发送电子邮件进行报告,所以从昨天开始它无法发送电子邮件,我收到了这条消息
\n“SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.0 需要身份验证。”
\n我检查了这篇文章\n SMTP 服务器需要安全连接或客户端未经过身份验证。服务器响应为: 5.5.1 需要身份验证?
\n我发现谷歌不再支持第三方应用程序,它不允许安全性较低的应用程序\n这是来自谷歌安全性较低的应用程序\n安全性较低的应用程序访问:
\n某些应用程序和设备使用安全性较低的登录技术,这会使您的帐户容易受到攻击。您可以关闭对这些应用程序的访问权限(我们建议这样做),或者如果您想尽管存在风险但仍想使用它们,则可以将其打开。如果不使用\xe2\x80\x99,Google 将自动关闭此设置。\n此设置不再可用。了解更多
\n所以我尝试添加 SmtpServer.UseDefaultCredentials = false; 但没有任何作用,我认为问题是谷歌不再支持第三方访问电子邮件。\n这是我的代码
\ntry\n{\n MailMessage mail = new MailMessage();\n System.Net.Mail.SmtpClient SmtpServer =\n new System.Net.Mail.SmtpClient("smtp.gmail.com");\n string sender = "user@gmail.com";\n mail.From = new MailAddress(sender);\n mail.To.Add("receiver@plastikon.com");\n mail.Priority = MailPriority.High;\n mail.Subject = subject;\n mail.IsBodyHtml = true;\n mail.Body = ($"{body} \\n Name of computer: { HostName} ");\n\n SmtpServer.Port = 587;\n SmtpServer.Credentials = new \n System.Net.NetworkCredential("user@gmail.com", "Password");\n SmtpServer.EnableSsl = true;\n SmtpServer.UseDefaultCredentials = false;\n\n SmtpServer.Send(mail);\n}\n …Run Code Online (Sandbox Code Playgroud)