[ruby-list:50560] Re: IMAP IDLE

From: emo@...
Date: 2017-08-22 09:42:31 UTC
List: ruby-list #50560
On 2017/08/22 14:30, とみたまさひろ wrote:

> IDLE発行後、数分経過後に切断されるんであれば、そういうサーバーの実装もありえます。
> その場合は、IMAPクライアントとしては、サーバーから切断される前にIDLEを終わらせて、またIDLEを発行するようにすればいいと思います。
> Ruby の Net::IMAP の場合は idle メソッドに引数でタイムアウト値を与えることができます。
> # 日本語のマニュアルには書かれてないようですが。
 >
 > IDLE発行後すぐに切断されているようならDOCOMOのIMAPサーバーがIDLEに 
ちゃんと対応していないのかもしれません。
 >

imap を実行すると、すぐに Exception が発生します。

この時の exception の backtrace を出力してみると、
以下のようになりました。

> /usr/lib/ruby/2.3.0/net/imap.rb:962:in `block in idle'
> /usr/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
> /usr/lib/ruby/2.3.0/net/imap.rb:952:in `idle'
> ./test_imap2.rb:32:in `<main>'



> 手でIMAPコマンドを叩いて確かめてみるのもいいと思います。
> 自分はDOCOMOの契約がないので試せません。
> 
>      % openssl s_client -connect imap.spmode.ne.jp:993
>      a LOGIN ユーザ名 パスワード
>      a SELECT INBOX
>      a IDLE
>      ここで待ち状態になるはず。抜けるには DONE
>      a LOGOUT
> 

openssl を使った方法は知りませんでした。
教えていただきどうもありがとうございます。

試してみたのですが、
GMAIL ではうまく行くのですが、DOCOMO では最初の
LOGIN から失敗してしまいます。

また、GMAILでは、LOGIN コマンド送出後、すぐに返答が
返ってくるのですが、DOCOMO では 10秒くらい経ってから
「Bad Login」のエラーメッセージが返ってきます。

ユーザ名、パスワードは何度も確かめたし、-crlf の有り無し
もテストしてみたのですが、どうしてもログインできません。

Ruby の imap を使ったプログラムでは、
IDLE はうまく動きませんが、
メールの一覧を取得することは
できているのですが、何が悪いのでしょうか?


> % openssl s_client -connect imap.spmode.ne.jp:993 -crlf
> ...
> ...
>     Key-Arg   : None
>     PSK identity: None
>     PSK identity hint: None
>     SRP username: None
>     Start Time: 1503394085
>     Timeout   : 300 (sec)
>     Verify return code: 0 (ok)
> ---
> * OK .
> ? LOGIN ユーザー名 パスワード
> ? BAD login failed
> * BYE .

江本


Attachments (1)

smime.p7s (3.91 KB, application/pkcs7-signature)

In This Thread