c# - 无法通过 MailMessage 和 smtpClient 授权 Gmail smtp

标签 c# gmail smtpclient

我一辈子都弄不明白为什么这行不通

SmtpClient smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    UseDefaultCredentials = false,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential("myemail@gmail.com", "myGmailPasswordHere"),
    EnableSsl = true,
    Timeout = 10000
};


smtp.Send(mail);

我得到:

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.

我刚刚将 EnableSsl 指定为 true,因此这不应该成为安全连接方面的问题。

我正在从本地主机运行它。是的,我输入的用户名和密码(我的 gmail 帐户凭据)是 100% 正确的。

最佳答案

我知道这是一个老话题,但是......谷歌已经改变了他们的安全设置。

我一直在努力寻找所有答案,直到我检查了我的电子邮件,其中包含一封来自 Google 的邮件,上面写着“我们最近阻止了对您的 Google 帐户的登录尝试”。

这让我进入了这个页面: Google Account Security

在“访问安全性较低的应用程序”部分下,您可以允许从其他设备/应用程序访问您的帐户...例如您的 C# 应用程序。

请注意,不再有“应用程序特定”部分。

希望这对某人有帮助...我刚刚失去了 30 分钟...

关于c# - 无法通过 MailMessage 和 smtpClient 授权 Gmail smtp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104645/

相关文章:

c# - SmtpClient 使用错误的凭据

c# - SmtpClient.SendAsync() 没有收到我发送的所有消息

c# - 从 XML 架构文件 (xsd) 生成 C# 9 类,包括现代功能(可空值 moSTLy)

c# - Memcached 与 Windows 和 .NET

c# - Asp.net 网页已过期且浏览器后退按钮

php - 使用 Gmail SMTP 通过 PHP 发送电子邮件

c# - 使用主机作为 IP 地址的 SMTP 发送邮件时无法解析远程名称

c# - 将 4 个字节(从字符串格式)转换为一个 u32。 C 或 C#

javascript - 在Gmail上,为什么不能用javascript点击 "To"字段?

html - Gmail 中未显示 Base64 编码图像