无法通过 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帐户发送邮件