我正在使用一个gmail帐户来发送应用程序的电子邮件,我设置了"允许较低的安全应用程序","最近的安全事件"上的列表为空。
直到今天它一直在工作,但今天开始说:
SMTP服务器需要安全的连接或客户端不是 身份验证。服务器响应是:5.5.1所需的身份验证
我仍然可以使用Gmail网站发送电子邮件,并且使用Thunderbird它仍然有效,但在应用程序中不行,
如果我在代码中更改了用户名和密码,则可以使用此特定的gmail帐户,但不使用。
这是我用来发送电子邮件的代码:
var client = new SmtpClient
{
Host = serverName,
Port = 587, // TLS Port
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(userName, pass)
};
using (var message = new MailMessage(new MailAddress(userName), new MailAddress(to))
{
Subject = subject,
Body = body
})
{
client.Send(message);
}
更新:突然它开始起作用(在我的本地,我有发送电子邮件的联合测试),不知道为什么,我检查了已部署的应用程序,它也开始发送电子邮件
update2:似乎是一个更全球化的问题:https://productforums.google.com/forum/?nomobile=true&hl = en& utm_source = google-account&account&am_medium = web#/div>
在我的搜索中,我发现了一些可以尝试的东西:
尝试将密码更改为更复杂/安全的密码。有时,Gmail似乎开始需要更复杂的密码,而无需让人们知道和/或抛出正确的错误。
从代码中删除" enablessl = true"行。(或设置为false)(链接)
您的代码刚刚停止随机工作的事实可能会暗示仍在呈现的过期证书的线条。
问题:当您说您能够通过浏览器和Thunderbird从该帐户发送电子邮件时,您是否正在从同一机器中发送与C#应用程序尝试的电子邮件?