Terminal 如何通过OpenSSL与Shell中的IMAP服务器通信
我想通过MacOSX终端向服务器发送IMAP命令并获得响应。我可以使用以下线路连接到服务器:Terminal 如何通过OpenSSL与Shell中的IMAP服务器通信,terminal,openssl,imap,Terminal,Openssl,Imap,我想通过MacOSX终端向服务器发送IMAP命令并获得响应。我可以使用以下线路连接到服务器: openssl s_client -connect imap.gmail.com:993 我可以成功登录: ? LOGIN m.client2 passwordhere 但所有其他命令都不起作用,服务器没有响应。例如,我试过: ? LIST "" "*" ? SELECT INBOX 试试这个,这个应该适合你(用你的 openssl s_client -connect imap.gmail.com
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 RedifMail 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
MacOSX终端不是akaBash。端子和外壳不一样!此命令序列(在选择收件箱后)非常有用:
4搜索Sent自“2018年10月14日”
,然后选择一个数字并执行5获取XXXX(标志BODY[HEADER.FIELDS(主题日期)]BODY[TEXT])
,以查看完整的电子邮件。我遇到此问题是为了寻找服务器忽略我所有命令的原因。在一段时间的不活动后,它会超时,但只要我继续键入,连接就会保持打开状态(但它从未响应)。Gmail似乎在过去几天推出了一个更新,现在需要这个选项。这对Cyrus IMAPd来说还是没有必要的。(多年来,我在没有-crlf
的情况下定期以这种方式连接所有Gmail访问,但从几天前开始,一些连接会挂起,今天它们都挂起了。)显然,自发布此帖子以来,cmdline语法已经收紧:新语法是:openssl s_客户端-crlf localhost:993
。请注意,-crlf
选项出现在主机名之前。