Telnet smtp.mail - 必须先发出 STARTTLS 命令
Posted
技术标签:
【中文标题】Telnet smtp.mail - 必须先发出 STARTTLS 命令【英文标题】:Telnet smtp.mail - must issue STARTTLS command first 【发布时间】:2015-12-16 07:07:05 【问题描述】:在我的 Mac 终端上,我正在尝试将 telnet
输入到我的 smtp.gmail.com
到 port 587
。
在 Google Apps(设置为管理 Dreamhost 域)上,我已配置中继,如下所示:
"Allowed senders: Only addresses in my domains"
"Require SMTP Authentication: Yes
"
当我HELO <me@domain.com>
时,我得到:
250 smtp.gmail.com at your service
然后我输入MAIL FROM: <me@example.com>
返回:
530 5.7.0 Must issue a STARTTLS command first.
我做错了什么?
【问题讨论】:
【参考方案1】:您需要先开始加密连接。这是使用 STARTTLS 命令完成的。
您可以使用以下命令代替telnet
:
openssl s_client -starttls smtp -ign_eof -crlf -connect smtp.gmail.com:587
它的工作方式类似于 telnet 命令,但需要先启动加密。
【讨论】:
输入时会中断:RCPT TO: myuser@googlemail.com
和 RENEGOTIATING<LF>139860672468096:error:1420410A:SSL routines:SSL_renegotiate:wrong ssl version:../ssl/ssl_lib.c:2127:
@rubo77,我遇到了同样的错误。你克服了吗?
实际上正确的命令应该是:openssl s_client -starttls smtp -ign_eof -crlf -connect <your.server>:port
。 s_client 的文档说,当在一行的开头输入一个大的R
(这里是RCPT TO...
)时,它会进行重新协商。由于 TLS1.3 不支持,您会收到这个奇怪的错误消息。
@dCSeven 感谢改进的openssl
命令行。我相应地更新了我的答案。以上是关于Telnet smtp.mail - 必须先发出 STARTTLS 命令的主要内容,如果未能解决你的问题,请参考以下文章