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)が、ひとつにすべし。


●再送信フィールド