class TMail::Mail new( port: TMail::Port = TMail::StringPort.new, config: TMail::Config = DEFAULT_CONFIG ) → TMail::Mail
port から Mail オブジェクトを作成します。
load( filename: String ) → TMail::Mail
ファイル filename からメールをロードして Mail オブジェクトを作成します。
ロードするファイルは MH のメールのようにメール一通がファイルひとつに
対応していなければいけません。
UNIX mbox のような形式は単独では対応していません。 メールボックスクラスを使ってください。
parse( str: String ) → TMail::Mail
文字列 str をパースして TMail::Mail オブジェクトを作成します。
str はメール一通分でなければいけません。
port → TMail::Portこのメールオブジェクトの生成元のポートです。
body_port → TMail::Portメール本文を保存しているポートを返します。
ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
実際に変更するためにはこのポートに書きこんだ後 #write_back を呼ぶ
必要があります。
each {|line| .... }
本文文字列の各行に対する繰り返し。
body_port.ropen {|f| f.each } と同じです。
body → Stringpreamble → String
メールボディ(本文)全てを文字列として返します。
MIME マルチパートメールのときは preamble に相当します。
この返り値を変更してもオリジナルは変更されません。
parts → Array of TMail::Mail
メールが MIME マルチパートメールの時、各パートが TMail::Mail の配列として
格納されています。マルチパートメールでないときは空の配列です。
ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
実際に変更するためにはこのオブジェクトに書きこんだあと #write_back を
呼ぶ必要があります。
epilogue → String
MIME マルチパートメールでの epilogue に相当する文字列です。
通常のメールのときは空文字列が入っています。
ただしここに書きこんでもロード元のファイル(や文字列)は変更されません。
実際に変更するためには書きこんだ後 #write_back を呼ぶ必要があります。
multipart?
メールが MIME マルチパートのとき真。
このメソッドは Content-Type ヘッダの内容で真偽を判断します。
encoded( eol = "\n", encoding = 'j' ) → String
メールを RFC2822 形式にエンコードした文字列に変換します。
その際、ヘッダの行末コードを eol に、ヘッダ内のエンコード前の
日本語文字列の文字コードを encoding に変換します。
ただし現在 encoding は "j" (JIS) しか正常に動作しません。
バージョン 0.9 からは #to_s は #decoded の別名になったので、この
メソッドとは違うはたらきをします。
decoded( eol = "\n", encoding = 'e' ) → Stringto_s( eol = "\n", encoding = 'e' ) → String
メールをデコードされた文字列に変換します。その際、ヘッダの行末
コードを eol に、ヘッダ内のエンコード前の日本語文字列の文字コードを
encoding に変換します。
バージョン 0.9 以降は #to_s はこのメソッドの別名になりました。
inspect → String
以前は #decoded の別名でしたがバージョン 0.9 からは
"#<TMail::Mail port=<StringPort:str=...>>"
のような簡潔な文字列化を行います。
write_back( eol = "\n", encoding = 'e' )
メール全体を文字列化し body_port に書き戻します。その際、ヘッダの
行末コードを eol に、ヘッダ内の日本語文字列の文字コードを encoding に
変換します。
date( default = nil ) → Timedate=( datetime: Time )
Date: ヘッダに対応する Time オブジェクト。
常にローカルタイムに変換されます。
strftime( format: String, default = nil ) → String
Date: ヘッダに表現された時刻と対応する Time オブジェクトに対し
strftime を呼びます。Date: ヘッダが存在しない場合は default を
返します。
to( default = nil ) → Array of Stringto=( addrs: String/Array of String )
To: アドレスの spec の配列。
to_addrs( default = nil ) → Array of TMail::Addressto_addrs=( addrs: TMail::Address/Array of TMail::Address )
To: アドレスの配列。
cc( default = nil ) → Array of Stringcc=( addrs: String/Array of String )
Cc: アドレスの spec の配列。
cc_addrs( default = nil ) → Array of TMail::Addresscc_addrs=( addrs: TMail::Address/Array of TMail::Address )
Cc: アドレスの配列。
bcc( default = nil ) → Array of Stringbcc=( addrs: String/Array of String )
Bcc: アドレスの spec の配列。
bcc_addrs( default = nil ) → Array of TMail::Addressbcc_addrs=( addrs: TMail::Address/Array of TMail::Address )
Bcc: アドレスの配列。
from( default = nil ) → Array of Stringfrom=( addrs: String/Array of String )
From: アドレスの spec の配列。
from_addrs( default = nil ) → Array of TMail::Addressfrom_addrs=( addrs: TMail::Address/Array of TMail::Address )
From: アドレスの配列。
friendly_from( default = nil ) → String
From: の最初のアドレスの phrase または spec。
From: が存在しないときは default を返します。
reply_to( default = nil ) → Array of Stringreply_to=( addrs: String/Array of String )
Reply-To: アドレスの spec の配列。
reply_to_addrs( default = nil ) → Array of TMail::Addressreply_to_addrs=( addrs: TMail::Address/Array of TMail::Address )
Reply-To: アドレスの配列。
sender( default = nil ) → Stringsender=( addr: String )
Sender: アドレスの spec
sender_addr( default = nil ) → TMail::Addresssender_addr=( addr: TMail::Address )
Sender: アドレス
subject( default = nil ) → Stringsubject=( sbj: String )
Subject: の内容。
Subject: が存在しないときは default を返します。
message_id( default = nil ) → Stringmessage_id=( id: String )
メールのメッセージ ID。
in_reply_to( default = nil ) → Array of Stringin_reply_to=( ids: String/Array of String )
In-Reply-To: に含まれるメッセージ ID のリスト。
references( default = nil ) → Array of Stringreferences=( ids: String/Array of String )
References: に含まれるメッセージ ID のリスト。
現在は References: にはメッセージ ID 以外は
含められません。(RFC2822)
mime_version( default = nil ) → Stringmime_version=( ver: String )
MIME バージョン。現在は常に 1.0 です。
ヘッダが存在しない場合は default を返します。
set_mime_version( major: Integer, minor: Integer )MIME バージョンをセットします。
content_type( default = nil ) → String
メール本体のファイルタイプを示す文字列。例えば "text/plain"。
ヘッダが存在しない場合は default を返します。
main_type( default = nil ) → String
メール本体のメインタイプ (例:"text")。
常に小文字に統一されます。
ヘッダが存在しない場合は default を返します。
sub_type( default = nil ) → String
メール本体のサブタイプ (例:"plain")。
常に小文字に統一されます。
ヘッダが存在しない場合は default を返します。
content_type=( main_sub: String )
Content-Type のメインタイプ・サブタイプを main_sub からセット
します。main_sub は例えば "text/plain" のような形式でなければ
いけません。
set_content_type( main: String, sub: String, params: Hash = nil )
コンテントタイプを main/sub; param; param; ... のように設定します。
params は「名前(文字列)→値(文字列)」の形式の Hash で与えます。
type_param( name: String, default = nil ) → String
Content-Type の name パラメータの値を返します。
name に対応する値やヘッダそのものが存在しない場合は default を
返します。
# example mail['Content-Type'] = 'text/plain; charset=iso-2022-jp' p mail.type_param('charset') # "iso-2022-jp"
multipart? → bool
Content-Type が MIME マルチパートメールであることを
示す内容ならば真。
transfer_encoding( default = nil ) → Stringtransfer_encoding=( str: String )
転送時に適用したエンコーディング (Content-Transfer-Encoding)。
'7bit' '8bit' 'Base64' 'Binary' など。
disposition( default = nil ) → Stringdisposition=( disp: String )
Content-Disposition の主値 (文字列)。返り値は常に小文字に統一されます。
name に対応する値やヘッダそのものが存在しない場合は default を
返します。
# example mail['Content-Disposition'] = 'attachement; filename="test.rb"' p mail.disposition # "attachment"
set_content_disposition( pos: String, params: Hash = nil )
disposition 文字列とパラメータのハッシュから Content-Disposition を
セットします。params は「名前(文字列)→値(文字列)」の形式の Hash です。
disposition_param( name: String, default = nil ) → String
Content-Disposition の付加パラメータの name の値を取得します。
name に対応する値やヘッダそのものが存在しない場合は default を
返します。
# example mail.disposition_param('filename')
destinations( default = nil ) → Array of String
To、Cc、Bcc すべてのアドレススペック文字列の配列を
返します。ひとつも存在しなければ default を返します。
reply_addresses( default = nil ) → Array of TMail::Address
返信すべきアドレスを判断し、Address オブジェクトの
配列で返します。返信すべきアドレスがみつからなければ
DEFAULT を返します。
error_reply_addresses( default = nil ) → Array of TMail::Address
エラーメールを返送すべきアドレスを判断し、Address オブジェクトの
配列で返します。返送すべきアドレスがみつからなければ default を返します。
clearヘッダを全て消去します。
keys → Array of TMail::HeaderFieldヘッダ名の配列を返します。
[]( name ) → TMail::HeaderFieldヘッダ名からヘッダオブジェクトを返します。
[]=( name, field )
name ヘッダに field を設定します。field は文字列か TMail::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| .... }
全てのヘッダオブジェクトに対するくりかえし。
ヘッダの順序指定付きの each_header です。最初に指定したものが指定した
順番で並び、その他のヘッダがランダムに続きます。順序は文字列の配列
TMail::Mail::FIELD_ORDER で設定してください(詳細はソースコードを参照)。
key?( name )
name ヘッダがあれば真。
value?( field )
field ヘッダオブジェクトがあれば真。
values_at( *keys ) → Array of TMail::HeaderFieldindexes( *keys ) → Array of TMail::HeaderFieldindices( *keys ) → Array of TMail::HeaderField
全ての keys について fetch した結果の配列を返します。
values → Array of TMail::HeaderField登録されている全てのヘッダオブジェクトの配列を返します。