TMail::Mail クラス


スーパークラス

Object

クラスメソッド

new( port = nil, strict = false )
Mail オブジェクトを作成します。port はPort オブジェクトで、省略時には StringPort.new('') を使います。

strict が真のときはヘッダのパースに失敗すると例外 ParseError を 発生します。偽のときはエラーを無視します。

load( filename )
ファイル filename からメールをロードして Mail オブジェクトを作成します。 ロードするファイルは mh のメールのようにメール一通がファイルひとつに 対応していなければいけません。

UNIX mbox のような形式は単独では対応して いません。別途ローダーを使ってください。

parse( str )
文字列 str をパースして Mail オブジェクトを作成します。str はメール 一通分でなければいけません。

メソッド

body_port
メール本文を保存しているポートを返します。

ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。 実際に変更するためにはこのポートに書きこんだ後 Mail#write_back を呼ぶ 必要があります。

each
body_port.each と同じです。
body
preamble
メールボディ(本文)全てを文字列で返します。 MIMEマルチパートメールのときはpreambleに相当します。
parts
メールがMIMEマルチパートメールの時、各パートが TMail::Mail の配列として 格納されています。マルチパートメールでないときは空の配列です。

ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。 実際に変更するためにはこのポートに書きこんだ後 Mail#write_back を呼ぶ 必要があります。

epilogue
epilogue=( str )
MIME マルチパートメールでの epilogue に相当する文字列です。 通常のメールのときは空文字列がはいっています。

ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。 実際に変更するためにはこのポートに書きこんだ後 Mail#write_back を呼ぶ 必要があります。

multipart?
メールが MIME マルチパートのとき true。 このメソッドは Content-Type ヘッダの内容で真偽を判断します。
encoded( eol = "\n", charset = 'j', dest = '', sep = '' )
適宜エンコードを行いつつメールを dest に書きこみます。その際、ヘッダの 行末コードを eol に、ヘッダ内のエンコード前の日本語の文字コードを charset にセットし、ヘッダと本文の間に文字列 sep をはさみます。

0.9 から to_s は decoded の別名になったので、このメソッドとは 違うはたらきをします。

decoded( eol = "\n", charset = 'e', ret = '', sep = '' )
メールを文字列に変換します。ヘッダがデコードされたものになること以外は encoded と同じです。0.9 以降 to_s はこのメソッドの別名になりました。
inspect
以前は decoded の別名でしたが 0.9 からは "#<TMail::Mail port=<StringPort:str=...>>" のような簡潔な文字列化を行います。
date( default = nil )
date=( time )
Date ヘッダを表現する Time オブジェクトです。
strftime( format, default = nil )
Date ヘッダに表現された時刻と対応する Time オブジェクトに対し strftime を呼びます。 Date ヘッダが存在しない場合は default を返します。
to( default = nil )
to=( str )
To ヘッダの一番最初のアドレスの文字列 (self['to'].addrs[0].address) です。 To ヘッダが存在しないときは default を返します。
to_addrs( default = nil ), to_addrs=( array )
To ヘッダのアドレスを Address オブジェクトの配列で返します (tmail['to'].addrs)。 To ヘッダが存在しない時は default を返します。
from( default = nil )
From ヘッダの最初のアドレスの phrase またはアドレスを文字列で返します。
from_addrs( default = nil ), from_addrs=( array )
From に対応するアドレスの Address オブジェクト、の配列を返します。 存在しないときは default を返します。
from_addrs=( arr )
アドレス(文字列)の配列から From ヘッダをセットします。
subject( default = nil ), subject=( str )
Subject です。 Subject ヘッダがないときは default を返します。
reply_to_addrs
Reply-To ヘッダのアドレスを Address オブジェクトの配列で返します。
sender( default = nil )
sender=( str )
Sender ヘッダのアドレスを Address オブジェクトで返します。 このヘッダにはただひとつのみアドレスが許されます。
message_id( default = nil )
message_id=( str )
メッセージID (文字列)です。
in_reply_to( default = nil )
in_reply_to=( arr )
In-Reply-To ヘッダのメッセージ ID を文字列の配列で返し、またはセットします。
references( default = nil )
references=( arr )
References ヘッダのメッセージ ID を文字列の配列で返し、またはセットします。
mime_version( default = nil )
mime_version=( str )
mime_version=( major, minor )
MIME バージョンを '1.0' のような文字列で返します。 セットする時は、'1.0' のような文字列か major と minor 二つの整数を使ってください。
main_type( default = nil )
メール本体のメインタイプを返します。
sub_type( default = nil )
メール本体のサブタイプを返します。
set_content_type( main, sub, params = nil )
コンテントタイプを main/sub; param ; param ; ... のように設定します。 params は「名前(文字列)→値(文字列)」の形式の Hash で与えます。
charset( default = nil )
charset=( str )
Content-Type の charset パラメータです。 セットする時は main_type が 'text' でなければならないことに気をつけてください。
multipart?
MIME マルチパートメールかどうかを返します。
encoding( default = nil )
encoding=( str )
Content-Transfer-Encoding を文字列で返します。 '7bit' '8bit' 'Base64' 'binary' などが使われます。
disposition( default = nil )
disposition=( str )
Content-Disposition の主値 (文字列)。 セットするときは、すでに形式の整った文字列。 たとえば 'attach; filename="note.txt"'
set_content_disposition( str, params = nil )
disposition 文字列とパラメータのハッシュから Content-Disposition を セットします。params は「名前(文字列)→値(文字列)」の形式の Hash です。
destinations( default = nil )
To、Cc、Bcc のアドレス(addr-spec 文字列)すべてを配列で返します。 ひとつも存在しなければ default を返します。
each_dest {|addr_spec| ....}
全ての宛先(addr-spec 文字列)に対するくりかえし。
reply_addresses( default = nil )
返信すべきアドレスを判断し、Address オブジェクトの 配列で返します。返信すべきアドレスがみつからなければ default を返します。
error_reply_addresses( default = nil )
エラーメールを返送すべきアドレスを判断し、Address オブジェクトの 配列で返します。返送すべきアドレスがみつからなければ default を返します。
clear
ヘッダを全て消去します。
keys
ヘッダ名の配列を返します。
self[ key ]
ヘッダ名からヘッダオブジェクトを返します。
fetch( key, default_body )
fetch( key ) { ... }
keyヘッダに対応するヘッダオブジェクトを返します。配列 TMail::Mail::USE_ARRAY に 名前が設定されているヘッダに対しては('Received'など)、ヘッダオブジェクトの 配列が返ります。key ヘッダが存在しない場合は default_body に与えられた文字列を ヘッダボディとして登録したうえでそのヘッダオブジェクトを返します。 default_body が省略され、ブロックが与えられたときは、そのブロックを評価した結果を default_body として使います。
self[ fname ] = val
store( fname, val )
fname ヘッダに val を設定します。val は文字列か HeaderField オブジェクトです。 Received など一部のヘッダに対してはさらにその配列も与えることができます。
delete( key )
key ヘッダを消します。
delete_if {|key, val| ..... }
ヘッダ名とヘッダを与えてブロックを評価し、真ならその関連づけを消します。
each_header {|name, field| ... }
each_pair {|name, field| ... }
全てのヘッダ名とヘッダオブジェクトに対するくりかえし。
each_header_name {|name| .... }
each_key {|name| .... }
全てのヘッダ名に対するくりかえし。
each_field {|field| ... }
each_value {|field| ... }
全てのヘッダオブジェクトに対するくりかえし。
orderd_each {|name, field| .... }
ヘッダの順序指定付きの each_header です。最初に指定したものが指定した 順番で並び、その他のヘッダがランダムに続きます。順序は文字列の配列 TMail::Mail::FIELD_ORDER で設定してください(詳細はソースコードを参照)。 TMail#encoded/decoded からも使われます。
has_key?( name )
include?( name )
key?( name )
name ヘッダがあれば真。
has_value?( field )
value?( field )
field ヘッダオブジェクトがあれば真。
indexes( *keys )
indices( *keys )
全てのkeysについてfetchした結果の配列を返します。
values
登録されている全てのヘッダオブジェクトの配列を返します。

Copyright (c) 1998-2001 Minero Aoki <aamine@loveruby.net>