TMail::Mailクラス


スーパークラス

Object

クラスメソッド

new( port, strict = false )
新しい Mail オブジェクトを返します。 引数はPortです。
strict が真のときはヘッダをパースできなかったときに、 例外 ParseError を発生します。偽のときはエラーを無視します。
load_from( filename )
新しい Mail オブジェクトを返します。引数 filename は mh などのように、 メール一通がファイルひとつに対応するファイルの名前でなければいけません。 UNIX mbox のような形式は単独では対応していないので、 別途ローダーを使ってください。
boundary
新しいバウンダリを作成して返します。
msgid
新しいMessage-IDを作成して返します。 ホスト名が取得できれば'<ランダム文字列@ホスト名>'の形式で作成します。 取得できないときはかわりに'tmail.on.ruby'を使います。
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.7 までは to_s と呼ばれていたものですが、 今後は encoded を推奨します。 将来のバージョンでは to_s は decoded の別名になります。
decoded( eol = "\n", charset = 'e', ret = '', sep = '' )
メールを文字列に変換します。 ヘッダがデコードされたものになること以外は encoded と同じです。
0.7 まではこのメソッドは inspect と呼ばれていましたが、 今後は decoded を使うことを勧めます。 将来のバージョンでは inspect はまったく違う意味になります。
date( default = nil ), date=( time )
Date ヘッダで表現される時刻(Time オブジェクト)です。
to( default = '' ), to=( str )
To ヘッダの一番最初のアドレスです。 To が存在しないときは default を返します。
from( default = '' ), from=( str )
From の一番最初のアドレスです。 From が存在しないときは default を返します。
from_phrase( default = '' )
From の一番最初のアドレスの phrase 部分を返します。 From が存在しないときは default を返します。
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{|header_name| .....}
全てのヘッダ名に対するくりかえし。
each_field{|field| ... }
each_value{|field| ... }
全てのヘッダオブジェクトに対するくりかえし。
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した結果の配列を返します。
store( fname, fbody )
fname ヘッダを fbody に設定します。fbody は文字列か HeaderField オブジェクトです。 Received: など一部のヘッダに対してはさらにその配列も与えることができます。
values
登録されている全てのヘッダオブジェクトの配列を返します。

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