Mailクラスでメールを解析する
Mailクラスを使うとメールを解析することができます。以下では、mbox形式のファイルストリームからメールを読み出し、差出人に example.com が含まれているものを集計しています。
require 'mailread' MBOX = 'math_girls.mbox' from = Hash.new(0) File.open(MBOX) do |mbox| while not mbox.eof? message = Mail.new(mbox) from[message.header['From']] += 1 end end from.keys.grep(/example\.com/).sort.each do |name| puts "#{name} => #{from[name]}" end
実行例です。
<xxxxxxxx@example.com> => 202 <yyyyyyy@example.com> => 35 <zzzz@example.com> => 2