June 21, 2007Rubyでメールの仕分け[Computer]
とある事情で大量のメールの仕分けをする必要がでてきました。仕分けといってもメーラーによって行われる単純なルール(例えばアドレスがhogeだったらadaフォルダに保存する)で解決できればよかったのですが、本文中に含まれる50個程度の指定語句(5から6桁の数字)に従って仕分けを行うという作業です。 ブツは例によってRubyでこしらえることにします。メールを扱うRubyのライブラリがないか探してみると、TMailというのが様々なメール形式に対応しているようで使いやすそうなので、これを利用することにしました。 TMailですが非常に細かいところまで気が配られていて、1通ごとのメールのヘッダや本文、添付ファイルの処理だけではなく、メールをまとめて管理する枠組みであるメールボックスについてもUNIX系のqmailやMaildir形式に対応しているようです。ただし今回、対象となるメールはすべてM$謹製のOutlook Expressで保存されたメールでしたので、直接メールボックスのままTMailでメールを扱うことができませんでした。しかしOutlook Expressのメールをドラックアンドドロップでウィンドウ外に保存すると、実はTMailでも対応しているMh形式の1通ごとのメールになりますので、あとはこれを処理して目標を達成しました。 TMailの使い方ですが、以下のような感じでコードを書くと、色々とメールの処理が行えます。 require 'tmail'
require 'nkf' mail = TMail::Mail::load('from_outlook_express.eml') # 件名の取得 # 本文の取得 作ったスクリプトはmail_sorter.rbです。こちらも参考にどうぞ。 コメント
コメントする
|
スポンサード リンク
|