52

我想通过 Mac OS X 终端向服务器发送 IMAP 命令并获得响应。我可以使用这条线连接到服务器:

openssl s_client -connect imap.gmail.com:993

我可以成功登录:

? LOGIN m.client2 passwordhere

但是所有其他命令都不起作用,服务器没有响应。我试过这个:

? LIST "" "*"
? SELECT INBOX
4

4 回答 4

76

在朋友的帮助下发现了一个错误:

openssl s_client -connect imap.gmail.com:993 -crlf

-crlf很关键

于 2013-02-19T14:37:35.927 回答
22

试试这个,这应该对你有用(用你的替换第一行

openssl s_client -connect imap.gmail.com:993 -crlf

命令(强制 -crlf)& 只输入蓝色部分):

在此处输入图像描述

于 2013-02-19T14:11:32.337 回答
5

首先,您的 gmail 帐户是否激活了 imap ???如果您能够成功登录,则表示 ssl 工作正常。你得到的返回码是什么

a1 LOGIN m.client2 passwordhere 命令。

你试过命令吗

a1 能力

尝试其他替代命令,因为并非所有 IMAP 服务器都实现所有 IMAP 命令。我在为 gmail rediffmail yahoo 等不同供应商创建数据迁移工具时遇到了这个问题......

于 2013-02-20T04:32:24.710 回答
4

需要考虑的更多选项:您可能正在连接到服务器产品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
于 2018-05-03T21:48:26.163 回答