[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)