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 → Stringpreamble → 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') → Stringto_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) → Timedate=(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) → Stringsender=(spec)
spec: String
Sender: アドレスの spec
sender_addr(default = nil) → TMail::Addresssender_addr=(addr)
addr: TMail::Address
Sender: アドレス
subject(default = nil) → Stringsubject=(sbj)
sbj: String
Subject: の内容。
Subject: が存在しないときは default を返します。
message_id(default = nil) → Stringmessage_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) → Stringmime_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) → Stringtransfer_encoding=(encoding)
encoding: String
転送時に適用したエンコーディング (Content-Transfer-Encoding)。
'7bit' '8bit' 'Base64' 'Binary' など。
disposition(default = nil) → Stringdisposition=(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]登録されている全てのヘッダオブジェクトの配列を返します。