From: Minero Aoki Date: 2003-05-02T01:24:22+09:00 Subject: [ruby-list:37640] Re: net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド 青木です。 In mail "[ruby-list:37637] Re: net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド" "Keisuke Minami" wrote: > 三並です。 > もともとの理由は、POP上でIMAPのように、 > uidを指定して、特定のメール情報だけを読み出したかったので、 > POP3#list_midが欲しくなりました。 つまり、限定 RETR が目的なんですね。了解しました。 それならば、次のような感じに書けるほうがカッコいいと思うの ですがどうでしょう。 def need_download?( id ) .... end pop.mails.find_all {|mail| need_download?(mail.uidl) }.each do |mail| mail_text = mail.pop # いろいろする end 今でもこのコードは動くんですが、現在の実装だと UIDL コマンドの 無駄が多すぎるので使いづらいと思います。しかし UIDL が高々一回 しか発行されないことが保証されれば気兼ねなく使えるはずです。 元の話に戻って POP3#list_mid ですが、この改造が終われば pop.mails.map {|m| m.uidl } で済むことなので、今回はとりあえず見送ります。何か明らかに 便利な使い道を教えてもらえたらそのときに追加しましょう。 # あ、メール番号も入れるなら # # pop.mails.map {|m| [m.num, m.uidl] } # # ですね。でも net/pop ではメール番号って基本的に使わないので # 知ってもあまり意味がないんですよね。 ------------------------------------------------------------------- 青木峰郎