Bru*_*ego 1 gmail openssl smtp
目标是使用以下命令发送电子邮件:
openssl s_client \
-connect smtp.gmail.com:587 \
-starttls smtp
Run Code Online (Sandbox Code Playgroud)
为此,在连接后,我使用 Base64 格式的用户名和密码提交必要的命令:
EHLO smtp.gmail.com
AUTH LOGIN
MAIL FROM: <noreply@example.com>
RCPT TO: <*****@gmail.com>
DATA
Subject: Sending an email using telnet
Hello,
This is an email sent by using the telnet command.
Your friend,
Me!
.
QUIT
Run Code Online (Sandbox Code Playgroud)
我正在尝试理解并搜索以下问题的解决方案:
RENEGOTIATING
4707790444:error:1400444C:SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert no renegotiation:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:1200:SSL alert number 100
4707790444:error:140040E5:SSL routines:CONNECT_CR_SRVR_HELLO:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:585:
Run Code Online (Sandbox Code Playgroud)
openssl s_client
是一个用于测试 SSL/TLS 连接的工具。因此,它为您提供了对任何已建立的 SSL/TLS 连接具有特殊效果的各种“命令”。您输入的大部分文本只会发送给对方。但如果它看到一个命令,它就会执行它。命令从一行的开头开始,这样的命令之一是单个字母“R”。这会导致 s_client 请求与服务器重新协商。以“RCPT TO”开头的行导致执行此命令。服务器配置为不接受重新协商请求 - 因此您会看到错误。
尝试对 s_client 使用“-ign_eof”标志。这具有禁用这些命令的效果。