4

ポート 143 で TLS を必要とする IMAP サーバーに接続するための Perl スクリプトを作成しています。サーバーは SSL 経由の接続をサポートしていません。これまでのところ、私が見つけた Perl IMAP モジュールは SSL のみをサポートしており、TLS はサポートしていません。

TLS サポートを提供する Perl IMAP モジュールはありますか? これまでのところ、私は見てきました:

ネット::IMAP ネット::IMAP::シンプル ネット::IMAP::クライアント

Net::IMAP::Client は SSL をサポートしますが、TLS はサポートしません。

何かご意見は?

4

2 に答える 2

2

後で変換される非 SSL ソケットを作成します。「これは、IO::Socket::SSL などの IO::Socket::INET の代替手段を使用する場合にも役立ちます。」

http://search.cpan.org/dist/Mail-IMAPClient/lib/Mail/IMAPClient.pod#Socket

...ここでメソッド参照を作成すると...

http://metacpan.org/pod/IO::Socket::SSL#METHODS

ここの例は簡単に調整できます

http://cpansearch.perl.org/src/SULLR/IO-Socket-SSL-1.24/example/ssl_client.pl

于 2009-05-05T19:44:59.543 に答える
2

ええ、でも TLS != SSL です。TLS を機能させるには、プレーン ソケットを作成し、IMAP STARTTLS コマンドを処理してから SSL ソケットに変換する必要があります。IO::Socket::SSL はこのようにソケットを「アップグレード」できますが、STARTTLS ネゴシエーションは IMAP プロトコルの一部であるため、「車輪の再発明」ではありません。IMAP クライアント モジュールのすべてのユーザーに車輪の再発明をさせることになります。プロセス中に発生するプロトコルのその部分(アイドルイベントなどの他のビットやピースを含む)を「手動で」処理する必要があります。

ソケットを開き、受信したものをすべてダンプし、「STARTTLS\r\n」を送信してから start_SSL を呼び出して、最善を尽くすことができると思います。もちろん、手動で行わない限り、機能チェックはありません。そのためには、IMAP RFC を調べる必要があります。

Mail::IMAPClientには TLS 処理が組み込まれていますが、特定の部分のみをダウンロードしたい場合にマルチパート メッセージを処理する際に問題が発生しました。とにかくメッセージ全体を取得する場合、これは問題になりません。しかし、私にとっては、検索は続きます!

于 2011-05-29T13:41:48.170 に答える