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.comport 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.comRENEGOTIATING<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 命令的主要内容,如果未能解决你的问题,请参考以下文章

php使用phpmailer类和smtp发送邮件

后缀 - 必须先发出 STARTTLS 命令

如何使用 telnet 发出请求?

电子邮件仅发送给第一个收件人 smtp mail python

Shell脚本成功telnet登录,之后如何发出命令?

SMTP 服务器响应:530 5.7.0 必须先发出 STARTTLS 命令。 Windows 7的