From: "とみたまさひろ" Date: 2003-05-01T23:53:30+09:00 Subject: [ruby-list:37639] Re: net/pop.rbにUIDLコマンドでMessage-Idのリストを取得するメソッド This is a multi-part message in MIME format. --Multipart_Thu__1_May_2003_23:53:49_+0900_08335820 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit とみたです。 On Thu, 1 May 2003 13:22:01 +0900 "Keisuke Minami" wrote: > POP3プロトコルの仕様上、メールの一覧を取得するのに無駄が多いのはしょうがないのですが、 > 特定のひとつのメールだけを取り出すには、UIDLとRETRを組み合わせるだけで > うまく行くと思ったのです。 〜〜 > POP3コマンドのコマンドの直接呼び出し用の > 低レベルインターフェースの実装だけでも > 十分事足りるかもしれないです。 私には Ruby 添付の net/pop は高機能すぎて使いづらかったので、自作の簡 単なものを良く使ってます。 こんな感じ。 pop = POP::new(hostname, username, password) pop.list # => ["1 1234","2 5678",...] pop.uidl # => ["1 uid-1","2 uid-2",..] pop.uidl 2 # => "2 uid-2" pop.retr 1 # => header + body pop.top 1, 0 # => header pop.quit よろしければどうぞ :-) -- とみたまさひろ --Multipart_Thu__1_May_2003_23:53:49_+0900_08335820 Content-Type: application/octet-stream; name="pop.rb" Content-Disposition: attachment; filename="pop.rb" Content-Transfer-Encoding: base64 cmVxdWlyZSAnc29ja2V0JwoKY2xhc3MgUE9QRXJyb3IgPCBTdGFuZGFyZEVycm9yCmVuZAoKY2xh c3MgUE9QCiAgZGVmIGluaXRpYWxpemUoc2VydmVyLCB1c2VyLCBwYXNzLCBwb3J0PTExMCkKICAg IEBzb2NrID0gVENQU29ja2V0OjpuZXcoc2VydmVyLCBwb3J0IHx8IDExMCkKICAgIHdhaXRfb2sK ICAgIEBzb2NrLnByaW50ICJVU0VSICN7dXNlcn1cclxuIgogICAgd2FpdF9vawogICAgQHNvY2su cHJpbnQgIlBBU1MgI3twYXNzfVxyXG4iCiAgICB3YWl0X29rCiAgZW5kCgogIGRlZiB1aWRsKG49 bmlsKQogICAgaWYgbiB0aGVuCiAgICAgIEBzb2NrLnByaW50ICJVSURMICN7bn1cclxuIgogICAg ICByID0gd2FpdF9vawogICAgICByZXR1cm4gcls0Li4tMV0KICAgIGVsc2UKICAgICAgQHNvY2su cHJpbnQgIlVJRExcclxuIgogICAgICB3YWl0X29rCiAgICAgIHJldHVybiB3YWl0X3Auc3BsaXQg L1xyXG4vCiAgICBlbmQKICBlbmQKCiAgZGVmIGxpc3Qobj1uaWwpCiAgICBpZiBuIHRoZW4KICAg ICAgQHNvY2sucHJpbnQgIkxJU1QgI3tufVxyXG4iCiAgICAgIHIgPSB3YWl0X29rCiAgICAgIHJl dHVybiByWzQuLi0xXQogICAgZWxzZQogICAgICBAc29jay5wcmludCAiTElTVFxyXG4iCiAgICAg IHdhaXRfb2sKICAgICAgcmV0dXJuIHdhaXRfcC5zcGxpdCAvXHJcbi8KICAgIGVuZAogIGVuZAoK ICBkZWYgcmV0cihuLCAmYmxvY2spCiAgICBAc29jay5wcmludCAiUkVUUiAje259XHJcbiIKICAg IHdhaXRfb2sKICAgIHdhaXRfcCAmYmxvY2sKICBlbmQKCiAgZGVmIHRvcChuLCBsLCAmYmxvY2sp CiAgICBAc29jay5wcmludCAiVE9QICN7bn0gI3tsfVxyXG4iCiAgICB3YWl0X29rCiAgICB3YWl0 X3AgJmJsb2NrCiAgZW5kCgogIGRlZiBkZWxlKG4pCiAgICBAc29jay5wcmludCAiREVMRSAje259 XHJcbiIKICAgIHdhaXRfb2sKICBlbmQKCiAgZGVmIHF1aXQoKQogICAgQHNvY2sucHJpbnQgIlFV SVRcclxuIgogICAgd2FpdF9vawogICAgQHNvY2suY2xvc2UKICBlbmQKCiAgZGVmIHdhaXRfb2so KQogICAgbG9vcCBkbwogICAgICByID0gQHNvY2suZ2V0cwogICAgICBpZiByID09IG5pbCB0aGVu CglyYWlzZSBQT1BFcnJvciwgJ2Rpc2Nvbm5lY3RlZCBieSBzZXJ2ZXInCiAgICAgIGVuZAogICAg ICByID0gci5jaG9tcC5zdWIoL1xyJC8sJycpCiAgICAgIGlmIHIgPX4gL15cK09LLyB0aGVuIHJl dHVybiByIGVuZAogICAgICByYWlzZSBQT1BFcnJvciwgcgogICAgZW5kCiAgZW5kCgogIGRlZiB3 YWl0X3AoJmJsb2NrKQogICAgcmV0ID0gJycKICAgIGxvb3AgZG8KICAgICAgciA9IEBzb2NrLmdl dHMKICAgICAgaWYgciA9PSBuaWwgdGhlbgoJcmFpc2UgUE9QRXJyb3IsICdkaXNjb25uZWN0ZWQg Ynkgc2VydmVyJwogICAgICBlbmQKICAgICAgaWYgciA9PSAiLlxyXG4iIHRoZW4gcmV0dXJuIHJl dCBlbmQKICAgICAgclswLDJdID0gJy4nIGlmIHJbMCwyXSA9PSAnLi4nCiAgICAgIGlmIGJsb2Nr IHRoZW4KCWJsb2NrLmNhbGwgcgogICAgICBlbHNlCglyZXQgPDwgcgogICAgICBlbmQKICAgIGVu ZAogICAgcmV0CiAgZW5kCgplbmQK --Multipart_Thu__1_May_2003_23:53:49_+0900_08335820--