Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > mailreadライブラリ > Mailクラス

class Mail

クラスの継承リスト: Mail < Object < Kernel

要約

Unix mbox 形式のメールファイルを解析するライブラリです。

mailread の使い方

require 'mailread'

m = Mail.new('/var/mail/foo')
puts 'From: ' + m['From'],
     'Subject: ' + m['Subject'],
     '--',
     m.body[0,5]

目次

特異メソッド
new
インスタンスメソッド
[] body header

特異メソッド

new(file) -> Mail[permalink][rdoc]

メールを解析します。 file にはファイル名か IO オブジェクトを渡します。 このメソッドを実行した時点でヘッダと本文が切り分けられ、 ヘッダのハッシュ(ヘッダフィールド単位)と本文の配列(行単位)が作られます。

[PARAM] 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] と同じですので値取得の際は、 フィールド名のアルファベットの大小を気にする必要はありません。

[PARAM] field:
取得したいメールのヘッダフィールド名
body -> [ String ][permalink][rdoc]

本文の各行を要素とする Array を返します。

header -> Hash[permalink][rdoc]

ヘッダを Hash で返します。

キーは 'From'、'Subject' などのフィールド名で、すべてのキーは String#capitalize されています。

値の末尾の改行は削除されます。 複数行に分かれている場合、間に改行をはさみます(継続行を表す空白は削除されます)。 MIME encoded-word のデコードなどを行いたい場合は nkf などを使用してください。