使用 openssl 发送邮件时 SSL 握手失败

使用 openssl 发送邮件时 SSL 握手失败

我尝试使用 openssl 从终端发送邮件,方法是使用 ssl 连接到端口 465 上的 gmail 服务器。在我输入发件人地址并进行身份验证之前,一切正常。但是当我输入 RCPT TO 时,我收到以下错误。

RCPT TO: <[email protected]>
RENEGOTIATING
139815845389984:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:

我猜测问题可能是由于缺少安全证书。有人能帮我解决这个问题吗?

答案1

您使用的openssl s_client程序仅用于测试目的。大写字母在(见)R中具有特殊含义,如您所见,它会触发重新协商。openssl s_clientman s_client

解决方案:SMTP 也接受小写命令,因此使用小写字母,r例如:

rcpt to: <[email protected]>

替代解决方案:使用 GnuTLS 而不是 OpenSSL 作为 SSL/TLS 客户端:

gnutls-cli -p 465 smtp.gmail.com

相关内容