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