2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2018 | 02 | 03 | 04 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2018 | 02 | 03 | 04 |
cpp
|
excel |
go言語 |
java |
js |
python |
powershell
|
ruby |
vba |
prog |
windows |
linux |
ipod |
pc |
zaurus |
rubytk |
vruby |
qt |
soft |
book |
雑記
2006-09-12(Tue)
net/pop - メールの受信
pop/apopサーバーに接続してメールを取って来る。下のサンプルではyahooメールにアクセスして各メールのunique-idとヘッダと本文10行をファイルに保存。文字コードはJIS。タイトルのデコードはNKFで実施、オプションはBだと思ったらNだった、この辺は良くわかっていないです。
追記
nkfのオプションがmBで上手くいかなかったのは、=?ISO-2022-JP?B?……?=という風にデーコード文字列の両端に識別用?の文字が付加していたためでした。これを除去したらmBでデコードできました。ちなみにヘッダにある日本語はSubject以外も同じエンコードを行う模様。
unique-idがわかるのでヘッダだけリストアップして必要なメールだけ取って来るなんていう処理も比較的簡単にできそうですね。
マニュアル:http://www.ruby-lang.org/ja/man/?cmd=view;name=net%2Fpop
require 'net/pop' require 'nkf' POPSERVER = 'pop.mail.yahoo.co.jp' PORT = 110 ACCOUNT = 'user_name' PASSWARD = 'passward' is_apop = false # APOPならばtrueにする INBOX = 'F:/inbox' pop = Net::POP3::APOP(is_apop).new( POPSERVER, PORT ) pop.start( ACCOUNT, PASSWARD ) do |pop| if pop.mails.empty? then puts 'no mail.' else pop.each_mail do |m| File.open( INBOX , 'a' ) do |f| f.puts "unique_id = " + m.unique_id f.puts #h = m.header # ヘッダのみ h = m.top(10) # ヘッダ+本文(10行) flag_subj = false # Subject: 処理中 subject = "" h.each_line("\n") do |line| line.chomp! # Subjectのデコード エンコードされたブロックが複数個ある場合に改行されてる? # 本文がJISだったのでタイトルも合わせる if flag_subj && /^ / =~ line subject << line.lstrip.gsub(/(\=\?.*?\?\=)/){|base| NKF.nkf('-mNj', base)} elsif /^Subject:/ =~ line subject = line.gsub(/(\=\?.*?\?\=)/){|base| NKF.nkf('-mNj', base)} flag_subj = true else f.puts subject if flag_subj f.puts line flag_subj = false end end f.puts '---------------------------------------------------' end # m.delete # サーバーから削除 end end end
トラックバック - http://d.hatena.ne.jp/hake/20060912/p2
リンク元
- 254 https://www.google.co.jp/
- 120 http://d.hatena.ne.jp/yamadaatmn/searchdiary?word=*[Zaurus]
- 59 http://d.hatena.ne.jp/yamadaatmn/
- 53 http://zaurus.dyndns.org/
- 28 http://d.hatena.ne.jp/yamadaatmn/20060913/1158156288
- 27 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CGMQFjAA&url=http://d.hatena.ne.jp/hake/20060912/p2&ei=JmaoT4GqK8iZiQfZ29nRAw&usg=AFQjCNGNJTGVovqTc4a_Vul9T1mc1IEsJQ&sig2=P_2zfhYfigQEsQi6RZqHjQ
- 26 https://www.google.co.jp
- 24 http://hake.syuriken.jp/ruby/index.html
- 18 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2006-18,GGLG:ja&q=ruby+net/pop
- 18 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=25&ved=0CEcQFjAEOBQ&url=http://d.hatena.ne.jp/hake/20060912/p2&ei=jtNyT5PiMOrImAXO__GFAg&usg=AFQjCNGNJTGVovqTc4a_Vul9T1mc1IEsJQ&sig2=lL0_8437h-inLFyFp7MRTg