我想通过 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 -crlf localhost:993
。请注意,在主机名之前出现了-crlf
选项。 - John Greene试一试这个,这应该对你有用(将第一行替换为你的
)openssl s_client -connect imap.gmail.com:993 -crlf
命令(必须使用-crlf)& 仅输入蓝色部分:
STARTTLS
(特别是在143端口上用于IMAP)的服务器,在这种情况下,您可以告诉openssl继续协商此事,您需要指定正在使用哪个协议(从pop3
、imap
、smtp
、ftp
中选择)。其他人已经提到了-crlf
选项,如果我正在调试SSL / TLS配置,我还发现-showcerts
选项很有用。因此,例如,您可能会得到以下结果: openssl s_client -showcerts -connect target.server.name.here:143 -starttls imap
如果您有相关的手册可用,可以通过手册获得更多选项。
涉及IT技术。man s_client
首先,您的Gmail帐户上是否已激活IMAP? 如果您能够成功登录,则表示SSL正常工作。 那么您得到的返回代码是什么?
a1 LOGIN m.client2 passwordhere command.
您尝试过该命令吗?
a1 capability
请尝试其他替代命令,因为并非所有IMAP服务器都实现了所有IMAP命令。 我在为不同供应商(如Gmail、Rediffmail和Yahoo)创建数据迁移工具时遇到了这个问题...
4 SEARCH SENTSINCE "14-Oct-2018"
,然后选择一个数字并执行5 FETCH XXXX (FLAGS BODY[HEADER.FIELDS (DATE FROM SUBJECT)] BODY[TEXT])
以查看完整的电子邮件。 - Florian