无法通过 telnet 使用 smtp.gmail.com

Posted

技术标签:

【中文标题】无法通过 telnet 使用 smtp.gmail.com【英文标题】:Unable to use smtp.gmail.com via telnet 【发布时间】:2016-03-09 09:15:21 【问题描述】:

我所做的只是通过 telnet 通过端口587 连接到smtp.gmail.com

telnet smtp.gmail.com 587  

然后输入:

EHLO smtp.gmail.com  

这是我得到的输出:

250-smtp.gmail.com at your service, [14.97.86.28]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8  

然后当我第一次使用 telnet 并输入AUTH LOGIN 时,我得到了类似的信息:

334 VXNlcm5hbWU6  

我第一次成功发送邮件。并使用QUIT 命令退出我的telnet 程序。

但是从第二次开始,每当我输入AUTH LOGIN 时,我得到的只是:

530 5.7.0 Must issue a STARTTLS command first. x79sm16871877pfi.47 - gsmtp  

即使在这之后我输入:

STARTTLS

我明白了:

220 2.0.0 Ready to start TLS  

但是在那之后,如果我给出任何其他命令,我的连接会自动关闭,我得到的只是:

FConnection closed by foreign host.  

我搞砸了什么?我需要让这件事发挥作用。请帮忙!

【问题讨论】:

【参考方案1】:

如果您未使用 OAuth2 (https://developers.google.com/identity/protocols/OAuth2),Google 会将您的访问归类为来自安全性较低的应用的访问。 如果您想启用从 telnet 发送邮件,您可以在您的 gmail 帐户中启用不太安全的应用程序 (https://support.google.com/accounts/answer/6010255?hl=en)

【讨论】:

我不明白。谷歌在我进行身份验证之前就关闭了连接。那么它怎么知道我打开或关闭了这个设置呢? 您必须通过浏览器登录您的谷歌帐户,然后启用不太安全的应用程序(请参阅我的答案中的第二个链接) 好吧,只是我使用的是telnet,然后一启动tls就没有加密通信,你必须使用openssl s_client -debug -starttls smtp -crlf -connect smtp-relay.gmail.com:587。 (我什至还没来得及向谷歌表明我的电子邮件地址就被淘汰了,那么既然我已经打开/关闭了这个设置,谷歌怎么可能呢?)

以上是关于无法通过 telnet 使用 smtp.gmail.com的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot - 无法连接到 SMTP 主机:smtp.gmail.com,端口:25,响应:421

wamp sendmail 无法通过 smtp.gmail.com:587 发送电子邮件 [重复]

无法使用smtp.gmail.com从一个特定的Google帐户发送邮件

通过 Telnet 发送邮件

无法将 Django 设置为与 smtp.gmail.com 一起使用

Telnet smtp.mail - 必须先发出 STARTTLS 命令