TMail::Mailクラス


スーパークラス

Object

クラスメソッド

new( port = nil, strict = false )
新しい Mail オブジェクトを返します。 引数 port はPortで、省略した時には StringPort.new('')が使われます。 strict が真のときはヘッダのパースに失敗すると例外 ParseError を 発生します。偽のときはエラーを無視します。
load_from( filename )
新しい Mail オブジェクトを返します。引数 filename は mh などのように、 メール一通がファイルひとつに対応するファイルの名前でなければいけません。 UNIX mbox のような形式は単独では対応していないので、 別途ローダーを使ってください。
new_boundary
boundary
新しいバウンダリを作成して返します。
new_msgid( fqdn = Socket.gethostname )
msgid
新しいメッセージ ID を作成して返します。 引数 fqdn が省略された場合はローカルホストの名前を使います。 一方 fqdn を指定する場合はダイヤルアップであるなどの事情により ホストの名前を変える必要があるのだとみなし、それに '.tmail' を つけたドメインを使用します。これは「本物の」ドメインで作成される メッセージ ID との重複を避けるためです。
msgid?( str )
文字列 str が正しいメッセージ ID 形式かどうかを返します。
zonestr2i( str )
タイムゾーンを表す文字列 str を整数に変換します。単位は分です。
time2str( time )
Time オブジェクトを RFC822 形式の文字列に変換します。
quote( str )
文字列 str がメールヘッダで特殊な意味を持つとき、「"」でクオートします。 そうでないときは str をそのまま返します。
quote_phrase( str )
文字列 str がメールヘッダで特殊な意味を持つとき、「"」でクオートします。 そうでないときは str をそのまま返します。phrase 専用です。
encoded?( str )
文字列 str にヘッダ用の MIME エンコードがなされていると思われる時、真。

メソッド

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

ただし、ここに書きこんでも実際のメールは変更されません。実際に変更するためには このポートに書きこんだ後 write_back メソッドを呼ぶ必要があります。

each
body_port.each と同じです。
body
preamble
メールボディ(本文)全てを文字列で返します。 MIMEマルチパートメールのときはpreambleに相当します。
parts
メールがMIMEマルチパートメールの時、 各パートが TMail::Mail の配列として格納されています。 マルチパートメールでないときは空の配列です。
この配列を変更しても実際のメールには反映されません。 反映させるには write_back を呼びます。
epilogue, epilogue=
MIMEマルチパートメールでの epilogue に相当する文字列です。 通常のメールのときは空文字列がはいっています。
この文字列を変更しても実際のメールには反映されません。 反映させるには write_back を呼びます。
multipart?
メールがMIMEマルチパートのとき true。 このメソッドは Content-Type ヘッダの内容で真偽を判断します。
encoded( eol = "\n", charset = 'j', ret = '', sep = '' )
適宜エンコードを行いつつメールを ret に書きこみます。 その際、ヘッダの行末コードを eol に、 ヘッダ内のエンコード前の日本語の文字コードを charset にセットし、 ヘッダと本文の間に文字列 sep をはさみます(たとえば Mh 形式なら'----')。
0.9 からは to_s は decoded の別名です。
decoded( eol = "\n", charset = 'e', ret = '', sep = '' )
メールを文字列に変換します。 ヘッダがデコードされたものになること以外は encoded と同じです。
0.9 からは to_s がこのメソッドの別名になりました。
inspect
以前は decoded の別名でしたが 0.9 からは "#date( default = nil ), date=( time )
Date ヘッダで表現される時刻(Time オブジェクト)です。
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) を返します。存在しない時は default を返します。
from_address( default = nil ), from_address=( str )
from( default = nil ), from=( str )
From の一番最初のアドレスです。 From が存在しないときは default を返します。
from_phrase( default = nil )
From の一番最初のアドレスの phrase 部分を返します。 From が存在しないときは default を返します。
from_addrs( default = nil ), from_addrs=( array )
subject( default = '' ), subject=( str )
Subject です。 Subject ヘッダがないときは default を返します。
msgid( default = '' ), msgid=( str )
メッセージID です。
mime_version( default = nil ), mime_version=( m, opt = nil )
MIME バージョンを '1.0' のような文字列で返します。 セットする時は、'1.0' のような文字列か major と minor 二つの整数を使ってください。
main_type( default = nil )
メール内容のメインタイプを返します。
sub_type( default = nil )
メール内容のサブタイプを返します。
charset( default = nil ), charset=( str )
Content-Type の charset パラメータです。 セットする時は maintype が 'text' でなければならないことに気をつけてください。
set_content_type( main, sub, params = nil )
コンテントタイプを main/sub; param ; param ; ... のように設定します。 params は Hash です。
encoding( default = nil ), encoding=( str )
転送用エンコーディングです。
destinations
全ての宛先(addr-spec 文字列)の配列。
each_dest {|addr_spec| ....}
全ての宛先(addr-spec 文字列)に対するくりかえし。
clear
ヘッダを全て消去します。
keys
ヘッダ名の配列を返します。
self[ key ]
ヘッダ名からヘッダオブジェクトを返します。
self[ key ] = val
keyヘッダの内容としてvalヘッダオブジェクトを使います。
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 からも使われます。
self[ key ]
fetch( key, default_body )
fetch( key ) { ... }
keyヘッダに対応するヘッダオブジェクトを返します。配列 TMail::Mail::USE_ARRAY に 名前が設定されているヘッダに対しては('Received'など)、ヘッダオブジェクトの 配列が返ります。key ヘッダが存在しない場合は default_body に与えられた文字列を ヘッダボディとして登録したうえでそのヘッダオブジェクトを返します。 default_body が省略され、ブロックが与えられたときは、そのブロックを評価した結果を default_body として使います。
has_key?( name )
include?( name )
key?( name )
name ヘッダがあれば真。
has_value?( field )
value?( field )
field ヘッダオブジェクトがあれば真。
indexes( *keys )
indices( *keys )
全てのkeysについてfetchした結果の配列を返します。
self[ fname ] = fbody
store( fname, fbody )
fname ヘッダを fbody に設定します。fbody は文字列か HeaderField オブジェクトです。 Received: など一部のヘッダに対してはさらにその配列も与えることができます。
values
登録されている全てのヘッダオブジェクトの配列を返します。

Copyright (c) 1998-2001 Minero Aoki <aamine@dp.u-netsurf.ne.jp>