【发布时间】:2022-01-09 07:14:54
【问题描述】:
由于某种原因,“Sending email in .NET through Gmail”的接受答案和任何其他答案都不适合我。为什么它们不起作用?
更新:我已经尝试了其他问题中的所有答案(已接受或不接受),但没有一个有效。
我只想知道它是否适用于其他人,否则谷歌可能已经改变了一些东西(以前发生过)。
当我尝试使用SmtpDeliveryMethod.Network 的代码时,我很快在Send(message) 上收到一个SmtpException。消息是
SMTP 服务器需要安全连接或客户端未通过身份验证。
服务器响应是:
5.5.1 需要身份验证。更多信息请访问“
更新:
这是我很久以前问过的一个问题,接受的答案是我在不同项目中多次使用过的代码。
我采用了这篇文章和其他 EmailSender 项目中的一些想法来创建一个EmailSender project at Codeplex。它专为可测试性而设计,并支持我最喜欢的 SMTP 服务,例如 GoDaddy 和 Gmail。
【问题讨论】:
-
我尝试使用不同语言的类似方法来做到这一点。遇到相同类型的事情:以前有效的旧文档方法对我不起作用。所以你会想知道谷歌是否改变了什么,或者你做错了什么。
-
@aaronls 最近唯一的变化似乎与 465 端口有关。我在寻找解决方案时尝试了它(我只是在做同样的工作),并且 465 端口一直超时。如果是这种情况,请尝试使用 587 端口。
-
这个问题是由于“文字验证”(验证码)造成的。如果您通过 Web 界面手动登录并填写验证码,您的 SMTP 将开始工作。
-
FWIW,为我工作。您需要使用 587 和 .EnableSSL true。 c# 4/.NET 4 当前不支持备用 465/SSL。 gmail 要求Configuring other mail clients。
-
关注@eglasius 的回答并确保在 Gmail 中打开“允许不太安全的应用程序”设置,以允许 gmail 对您的帐户进行身份验证。