我正在使用一个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&utm_medium=web#!topic/gmail/NETOwtLyWGI
答案 0 :(得分:2)
在搜索中,我发现了一些可以尝试的东西:
尝试将密码更改为更复杂/安全的密码。有时,Gmail似乎开始要求使用更复杂的密码,而不会让人们知道和/或引发适当的错误。
从代码中删除“ EnableSsl = true”行。 (或设置为false)(Link)
您的代码刚刚停止随机运行的事实可能表明,仍在显示已过期证书的情况。
问题:当您说您能够通过浏览器和Thunderbird从该帐户发送电子邮件时,您是否从C#应用程序尝试从同一台计算机发送这些电子邮件?