RFC2822概要 (1)
●行の定義
メッセージは文字のラインに分割される。ラインは2つの文字、キャリッジリ
ターンとラインフィードで区切られた一連の文字である;それはキャリッジリ
ターン文字(CR, ASCIIコードで13)にすぐ続いてラインフィード文字(LF,
ASCIIコードで10)である。(キャリッジリターン/ラインフィードのペアはし
ばしばこの文書で「CRLF」と書かれる)。
●メッセージ
ヘッダフィールド
ボディ
●行の長さ
※CRLFをのぞいて
・998文字以下(MUST) ← インターネットメッセージフォーマットのメッセージ送受信蓄積
・78文字以下(SHOULD) ← ユーザインタフェースの多くの実装に便宜
●ヘッダフィールド<フィールド名>:<フィールドボディ>
※フィールド名 : 印刷可能なUS-ASCII(33-126) (MUST)
※フィールドボディ : CR, LFを除く任意のUS-ASCII文字
※フィールドボディはfolding/unfolding使用ならCRLF含んでもよい。
●folding
フィールドボディの複数行分割 = folding
ホワイトスペースが挿入されるような場所で、
WSPの前にCRLFを挿入してもよい。
※高次の分かれ目に置かれるべし(SHOULD)
※コンマ区切りのフィールドボディの場合は、コンマのあとで
●unfolding
foldingされたヘッダフィールドを元に復元すること。
●ボディ
制限は二つ
・CRとLFは一緒に現れなければならない(MUST) → CRLF
・CRLFを除き、998文字以下でなければならす(MUST)、78文字以下にすべし(SHOULD)
●配送日時フィールド
orig-date = "Date:" date-time CRLF
特にメッセージが実際に配送され
ている時間を含むことを意味せず、むしろ人またはメッセージの人以外の著者
がメッセージを最終形にした、配送の準備ができたという時間を示す。
どのタイミングの日時を入れるかの仕様。
●差出人のフィールド
from = "From:" mailbox-list CRLF
sender = "Sender:" mailbox CRLF
reply-to = "Reply-To:" address-list CRLF
senderが必須(MUST)な場合:fromに複数のメールボックス、または、著者と送信者が異なる
reply-toはオプション(MAY)。存在しないならfromにリプライすべし(SHOULD)。
fromは責任の所在を明らかにする。メッセージの著者に属さないメールボックスを含むべきではない(SHOULD NOT)。
senderは実際に送った人。必要な場合以外使われるべきではない(SHOULD NOT)。
●あて先フィールド
to = "To:" address-list CRLF
cc = "Cc:" address-list CRLF
bcc = "Bcc:" (address-list / [CFWS]) CRLF
bccの取扱の仕様。
・bcc削除
・to/cc向けではbcc削除。bcc向けは削除なし
・アドレスなしのbcc
※特に返信のときのアドレス設定で注意が必要
リプライ時のアドレスの設定の仕方の仕様
●IDのためのフィールド
message-id = "Message-ID:" msg-id CRLF
in-reply-to = "In-Reply-To:" 1*msg-id CRLF
references = "References:" 1*msg-id CRLF
message-id:持つべし(SHOULD)。サーバでも値保持。
in-reply-to/references:返信メッセージで適切に持つべし(SHOULD)
message-idの生成の仕様。
●情報フィールド
subject = "Subject:" unstructured CRLF
comments = "Comments:" unstructured CRLF
keywords = "Keywords:" phrase *("," phrase) CRLF
subject:返信で「Re:」をつけてもよい(MAY)が、ひとつにすべし。
●再送信フィールド