HeaderFieldとその下位クラス

ヘッダフィールドは種類によって対応するクラスが違います。例えば、 To: ヘッダは MaddrH クラスです。

ただし、生成するときはすべてHeaderField.newで生成できるので、HeaderFieldの 下位クラスのnewを明示的に呼ぶ必要はありません。


HeaderFieldクラス

スーパークラス

Object

クラスメソッド

new( fname: String, fbody: String ) : HeaderField
新しいヘッダフィールドを返します。fnameはフィールド名、fbodyはフィールドボディ、 parserはメールパーサです。
fnameによって、様々なクラスを生成します。

メソッド

name : String
フィールド名です。あらかじめdupしてから渡されるので、

        h = HeaderField.new("To","aamine@softica.or.jp")
        h.name.replace('From')

…などという邪悪なことはできません。

to_s( sep = "\n " ): String
ヘッダ全体をエンコードした文字列を返します。おりかえしが必要なときは sepを間にはさみます。
inspect : String
ヘッダ全体をデコードした文字列を返します。
body : String
デコードしたヘッダボディを返します。

StringHクラス

スーパークラス

HeaderField

対応ヘッダ

メソッド

body, body=( str: String )
フィールドボディです。

StructHクラス

'Struct'ヘッダを表す抽象クラスです。実体化してはいけません。

スーパークラス

HeaderField

メソッド

comments
コメント(かっこにかこまれている部分)の配列を返します。

UnknownHクラス

スーパークラス

StructH

対応ヘッダ

明示的に対応するクラスがあるヘッダ以外の全てのヘッダ

メソッド

body, body=( str : String )
フィールドボディ。

DateHクラス

スーパークラス

StructH

対応するヘッダ

クラスメソッド

DateH.t2s( tim : Time ) : String
ローカル時間のTimeオブジェクトを、RFC822(RFC1123)形式 ( MON DD YYYY HH:MM:SS [+/-]ZZZZ )の文字列表現に直します。

メソッド

date, date=( tim : Time )
Dateヘッダのdate-timeをTimeオブジェクトにしたもの。ソートなどに都合がいいように、 代入のときは常にローカル時間に変換されます。

SaddrHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

addr, addr=( adr : MailAddr )
MboxまたはAddrGroupを返します。

MaddrHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

addrs : Array of MailAddr
MboxまたはAddrGroupの配列を返します。それ以外のオブジェクトをこの配列にいれると to_sしたときに例外が発生します。

MsgidHクラス

スーパークラス

StructH

対応ヘッダ

クラスメソッド

MsgidH.msgid?( str : String )
strがmessage-id形式の文字列を含むときにはその部分の文字列を、 そうでないときはnilを返します。

メソッド

msgid, msgid=( str : String )
メッセージID文字列を返します。

RefHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

refs : Array of String
MessageIDとphraseの配列を返します。
each_msgid{|msgid| .... }
messageIDに対してだけ繰りかえします。
each_phrase{|phrase| .... }
phraseに対してだけ繰りかえします。

RecvHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

from, from=( domain: String )
fromに対応する文字列です。ドメインの形式でなければいけません(チェックしません)。
by, by=( domain: String )
byに対応する文字列です。ドメインの形式でなければいけません(チェックしません)。
via, via=( atom: String )
viaに対応する文字列です。
with : Array of String
withに対応する文字列の配列です。プロトコルを表す文字列でなければいけません。 (チェックしません)
msgid, msgid=( yd : String )
idに対応する文字列です。MessageID形式でなければいけません(チェックしません)。
ford, ford=( fod : Mbox )
forに対応する文字列です。単純にforでないことに注意してください。 dはドメインのdですがあまりよくなかったような気がします。
date, date=( dat : Time )
ヘッダ中の ; のあとに示された時刻に対応するTimeオブジェクトです。 ローカル時間でないオブジェクトを代入するとローカル時間に変更されます。

EncHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

encrypter, encrypter=( enc: String )
エンコードを行ったソフトウェアの名前。
keyword, keyword=( key: String )
キーワード。

VersionHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

major, major=( maj: Integer )
メジャーバージョンです。
minor, minor=( min: Integer )
マイナーバージョンです。

CTypeHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

main, main=( tipe: String )
コンテントメインタイプ。
sub, sub=( tipe: String )
コンテントサブタイプ。
params : Hash
パラメーターをHashとして格納したもの。

CEncodingHクラス

スーパークラス

StructH

対応ヘッダ

メソッド

encoding, encoding=( enc: String )
転送時のエンコード方式。

CDispositionクラス

スーパークラス

StructH

対応ヘッダ

メソッド

disposition, disposition=( dis: String )
コンテンツの扱われかたを示す文字列
params : Hash
パラメータをHashとして格納したもの

フィールド名とクラスの対応

フィールド名 クラス
Date DateH
Resent-Date DateH
Received RecvH
Return-Path SaddrH
Sender SaddrH
Resent-Sender SaddrH
To MaddrH
Cc MaddrH
Bcc MaddrH
From MaddrH
Reply-To MaddrH
Resent-To MaddrH
Resent-Cc MaddrH
Resent-Bcc MaddrH
Resent-From MaddrH
Resent-Reply-To MaddrH
Message-ID MsgidH
Resent-Message-ID MsgidH
In-Reply-To RefH
References RefH
Keywords KeyH
Encrypted EncH
Subject StringH
Comments StringH
MIME-Version VersionH
Content-Type CTypeH
Content-Transfer-Encoding CEncodingH
Content-ID MsgidH
Content-Description StringH