如何通过OpenSSL与Shell中的IMAP服务器通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过OpenSSL与Shell中的IMAP服务器通信相关的知识,希望对你有一定的参考价值。

我想通过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登录m.client2 passwordhere命令。

你试过这个命令吗?

a1能力

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

另一答案

还有一些选项需要考虑:您可能正在连接到提供STARTTLS的服务器,在这种情况下,您可以告诉openssl继续协商,您需要指定您正在使用的协议(从pop3imapsmtpftp中选择) ;其他人已经提到过-crlf选项,如果我正在调试SSL / TLS配置,我也发现-showcerts选项很有用。所以例如你最终可能会,

 openssl s_client -showcerts -connect target.server.name.here:143 -starttls imap

如果您有相关的手册页,可以使用相关手册页的更多选项,

man s_client

以上是关于如何通过OpenSSL与Shell中的IMAP服务器通信的主要内容,如果未能解决你的问题,请参考以下文章

PHP imap_open(),OpenSSL,并且没有密码

如何通过 socks 连接到 imap?去

IMAP 服务器外观 - 如何制作?

怎样设置OUTLOOK IMAP?

电子邮件如何从 SMTP 传输到 IMAP?

如何理解 IMAP 电子邮件文本中的等号“=”符号?