Smtp 获取“530 5.7.0必须首先发出STARTTLS命令”。通过netcat发送邮件时出错

Smtp 获取“530 5.7.0必须首先发出STARTTLS命令”。通过netcat发送邮件时出错,smtp,netcat,Smtp,Netcat,我正在尝试使用netcat发送电子邮件,我得到的是: ****-MacBook-Pro:~ ***$ nc smtp.gmail.com 25 220 mx.google.com ESMTP h8sm66301168eew.16 - gsmtp Helo gmail.com 250 mx.google.com at your service MAIL FROM: <******@gmail.com> 530 5.7.0 Must issue a STARTTLS command fi

我正在尝试使用netcat发送电子邮件,我得到的是:

****-MacBook-Pro:~ ***$ nc smtp.gmail.com 25
220 mx.google.com ESMTP h8sm66301168eew.16 - gsmtp
Helo gmail.com
250 mx.google.com at your service
MAIL FROM: <******@gmail.com>
530 5.7.0 Must issue a STARTTLS command first. h8sm66301168eew.16 - gsmtp

什么是STARTTLS命令?我需要用它做什么?

STARTTLS是纯文本通信协议的扩展,它提供了一种将纯文本连接升级为加密TLS或SSL连接的方法,而不是使用单独的端口进行加密通信


smtp服务器表示它不接受纯文本连接。

您基本上只需要指定您正在使用TLS。

使用EHLO而不是HELO。这将启动250-STARTTLS。

那么解决方案是什么?@mgPePe这个问题没有解决方案。由于需要加密,您无法使用netcat向该服务器发送邮件。我在EC2和CakePHP中遇到了这个问题,结果我不得不向主机添加ssl://以使其正常工作。