From: Minero Aoki Date: 2003-05-02T14:22:47+09:00 Subject: [ruby-list:37644] Re: net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド 青木です。 In mail "[ruby-list:37642] Re: net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド" "Keisuke Minami" wrote: > 三並です。 > > それならば、次のような感じに書けるほうがカッコいいと思うの > > ですがどうでしょう。 > > 今でもこのコードは動くんですが、現在の実装だと UIDL コマンドの > > 無駄が多すぎるので使いづらいと思います。しかし UIDL が高々一回 > > しか発行されないことが保証されれば気兼ねなく使えるはずです。 > > まさにその通りです。 > 一回似たようなことをやってみたら、とんでもなく重くて、 > UIDLを引数無しで呼び出すことができればと思っていました。 > > ここまでnet/pop.rb側で処理してくれると至れり尽くせりですね。 じゃあこの方針でいってみます。 > ただ、net/pop.rbでいろいろとやってくれるのはいいのですが、 > セッション内でどんなコマンドを発行したかを、 > なんらかの手段で取得できるとうれしいですね。 > #今まで、直接NICに流れるデータを見て確認していたので。 pop = Net::POP.new(....) pop.set_debug_output $stderr pop.start { .... } とすると stderr に次のように出力されます。 opening connection to localhost... opened -> "+OK harmony POP3 Server (Version 1.005l) ready at \r\n" <- "USER XXXXXXXX\r\n" -> "+OK please send PASS command\r\n" <- "PASS XXXXXXXX\r\n" -> "+OK 7 messages ready for aamine in /usr/spool/mail/aamine\r\n" <- "STAT\r\n" -> "+OK 7 1577046\r\n" <- "LIST\r\n" -> "+OK 7 messages; msg\# and size (in octets) for undeleted messages:\r\n" -> "1 104916\r\n" -> "2 209364\r\n" -> "3 313812\r\n" -> "4 418260\r\n" 中略 <- "QUIT\r\n" -> "+OK harmony POP3 Server (Version 1.005l) shutdown.\r\n" closed Net::SMTP Net::HTTP も同様です。ただしパスワードもそのまま 流れてしまうので本当にデバッグ用にしか使えません。 ------------------------------------------------------------------- 青木峰郎