Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > mailreadライブラリ > Mailクラス
クラスの継承リスト: Mail < Object < Kernel
Unix mbox 形式のメールファイルを解析するライブラリです。
require 'mailread' m = Mail.new('/var/mail/foo') puts 'From: ' + m['From'], 'Subject: ' + m['Subject'], '--', m.body[0,5]
new(file) -> Mail
[permalink][rdoc]メールを解析します。 file にはファイル名か IO オブジェクトを渡します。 このメソッドを実行した時点でヘッダと本文が切り分けられ、 ヘッダのハッシュ(ヘッダフィールド単位)と本文の配列(行単位)が作られます。
1ファイル複数メールの形式(Unix mbox 形式)に対応しています (この場合 open 済みの IO を渡す必要があることに注意)。 例えば以下のようにして各メールの Subject を表示できます。
例:
require 'mailread' require 'nkf' mailbox = File.open('/var/mail/foo') until (m = Mail.new(mailbox)).header.empty? puts NKF.nkf('-me', m['subject']) end
self[field] -> String | nil
[permalink][rdoc]ヘッダの field の値を返します。 m.header[field.capitalize] と同じですので値取得の際は、 フィールド名のアルファベットの大小を気にする必要はありません。
body -> [ String ]
[permalink][rdoc]本文の各行を要素とする Array を返します。
header -> Hash
[permalink][rdoc]ヘッダを Hash で返します。
キーは 'From'、'Subject' などのフィールド名で、すべてのキーは String#capitalize されています。
値の末尾の改行は削除されます。 複数行に分かれている場合、間に改行をはさみます(継続行を表す空白は削除されます)。 MIME encoded-word のデコードなどを行いたい場合は nkf などを使用してください。