web-dev-qa-db-ja.com

OpenSSLを介してシェルでIMAPサーバーと通信する方法

Mac OS Xターミナル経由でIMAPコマンドをサーバーに送信し、応答を取得したい。次の行を使用してサーバーに接続できます。

openssl s_client -connect imap.gmail.com:993

そして、私は正常にログインできます:

? LOGIN m.client2 passwordhere

しかし、他のすべてのコマンドは機能せず、サーバーからの応答もありません。私は例えばこれを試しました:

? LIST "" "*"
? SELECT INBOX
43
wzbozon

友人の助けによってエラーが見つかりました:

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

-crlfは重要です

63
wzbozon

これを試してください、これはあなたのために働くはずです(あなたによって最初の行を置き換えます

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

コマンド(必須-crlf)&青い部分のみを入力):

enter image description here

17
Gilles Quenot

考慮すべきいくつかのオプション:STARTTLSを提供するサーバーに接続している可能性があります。その場合、opensslにこれをネゴシエートするよう指示することができます。使用しているプロトコルを指定する必要があります(pop3imapsmtpftp); -crlfオプションは他の人から言及されていますが、-showcertsオプションは、SSL/TLS構成をデバッグする場合に役立ちます。たとえば、次のようになります。

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

関連するマニュアルページがある場合は、さらに多くのオプションがあります。

man s_client
4
Andrew Richards

まず最初に、Gmailアカウントでimapをアクティブにしますか?ログインに成功した場合、sslが正常に機能していることを意味します。あなたが得るリターンコードは何ですか

a1 LOGIN m.client2 passwordhereコマンド。

コマンドを試しましたか

a1機能

すべてのIMAPサーバーがすべてのIMAPコマンドを実装しているわけではないため、他の代替コマンドを試してください。 gmail rediffmail yahooなどのさまざまなベンダーのデータ移行ツールを作成しているときに、この問題に直面しました...

4
Anshul