我想通过 Mac OS X 终端向服务器发送 IMAP 命令并获得响应。我可以使用这条线连接到服务器:
openssl s_client -connect imap.gmail.com:993
我可以成功登录:
? LOGIN m.client2 passwordhere
但是所有其他命令都不起作用,服务器没有响应。我试过这个:
? LIST "" "*"
? SELECT INBOX
在朋友的帮助下发现了一个错误:
openssl s_client -connect imap.gmail.com:993 -crlf
-crlf很关键
试试这个,这应该对你有用(用你的替换第一行
openssl s_client -connect imap.gmail.com:993 -crlf
命令(强制 -crlf)& 只输入蓝色部分):
首先,您的 gmail 帐户是否激活了 imap ???如果您能够成功登录,则表示 ssl 工作正常。你得到的返回码是什么
a1 LOGIN m.client2 passwordhere 命令。
你试过命令吗
a1 能力
尝试其他替代命令,因为并非所有 IMAP 服务器都实现所有 IMAP 命令。我在为 gmail rediffmail yahoo 等不同供应商创建数据迁移工具时遇到了这个问题......
需要考虑的更多选项:您可能正在连接到服务器产品STARTTLS
(尤其是端口 143 上的 IMAP),在这种情况下,您可以告诉 openssl 继续协商,您需要指定您正在使用的协议(从pop3
, imap
, smtp
, ftp
); 该-crlf
选项已被其他人提及,-showcerts
如果我正在调试 SSL/TLS 配置,我也发现该选项很有用。因此,例如,您最终可能会得到,
openssl s_client -showcerts -connect target.server.name.here:143 -starttls imap
如果您有可用的相关手册页的更多选项,
man s_client