1. この文書の読み方
1.1. 文書の構成
この文書は, IMAP4rev1 クライアントまたはサーバーの実装者の観点から記述されている. 第 2 節のプロトコル概要を除き, プロトコルの動作を初めて理解しようとする読者向けには最適化されていない. 第 3 節から第 5 節では, IMAP4rev1 が動作するための一般的な背景と定義を示す.
第 6 節, 第 7 節, 第 9 節では, それぞれ IMAP のコマンド, 応答, 構文を説明する. これらは相互に密接に関連しているため, いずれか一つだけを読んで理解することはほぼ不可能である. 特に, コマンドの節だけからコマンド構文を推測してはならない. 代わりに形式構文の節を参照すること.
1.2. この文書で使用する規約
ここでいう「規約」は基本原則または手順を指す. 文書上の規約を本節で示す.
例では, "C:" と "S:" はそれぞれクライアントおよびサーバーが送信した行を表す.
本文書中の "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "MAY", および "OPTIONAL" は, [KEYWORDS] で定義されているとおりに解釈する.
"can" ("may" ではない) は, プロトコルの任意機能ではなく, 起こり得る状況または状態を表すために用いる.
"user" は人間の利用者を指し, "client" はその利用者が実行するソフトウェアを指す.
"connection" は, ネットワーク接続の最初の確立から終了までに行われるクライアントとサーバーの相互作用全体を指す.
"session" は, メールボックスを選択する時点 (SELECT または EXAMINE コマンド) から, その選択が終了する時点 (別のメールボックスに対する SELECT または EXAMINE, CLOSE コマンド, もしくは接続の終了) までのクライアントとサーバーの相互作用を指す.
特に明記しない限り, 文字は 7 ビット US-ASCII である. 他の文字集合は, [MIME-IMT] で説明され [CHARSET] で定義される "CHARSET" により示す. CHARSET には文字集合を定義すること以外にも重要な意味があるため, 詳細はこれらの文書を参照すること.
IMAP には複数のプロトコル規約がある. これらは厳密には IMAP プロトコルの一部ではないが, 広く受け入れられた慣行を反映する仕様上の側面である. 実装はその規約を実装するかどうかにかかわらず, 規約を認識し競合を避ける必要がある. 例えば, "&" は Mailbox International Naming Convention と競合するため階層区切り文字として使用できず, メールボックス名内における "&" のほかの使用にも影響する.
1.3. 実装者への特記事項
IMAP プロトコルの実装者は, このプロトコルの複雑な点と相互運用可能な製品を構築する最善の方法を理解するため, 本文書と合わせて IMAP 実装に関する推奨事項 [IMAP-IMPLEMENTATION] を読むことが強く推奨される.
IMAP4rev1 は [IMAP2] および未公開の IMAP2bis プロトコルとの上位互換性を持つように設計されている. IMAP4rev1 は RFC 1730 で説明された IMAP4 プロトコルと大部分で互換である. ただし RFC 1730 で追加された機能のうち問題が判明して後に削除されたものは例外である. IMAP4rev1 の発展に伴い, 以前のプロトコルの一部は廃止された. 旧実装と使用した際に IMAP4rev1 実装が遭遇し得る廃止済みのコマンド, 応答, データ形式は [IMAP-OBSOLETE] で説明されている.
以前のプロトコルで最も一般的な変種である IMAP2bis に関するその他の互換性問題は [IMAP-COMPAT] で論じられている. 希少で (おそらくはすでに使われていない) [IMAP2] の変種との互換性問題を完全に論じた文書は [IMAP-HISTORICAL] であり, 主として歴史的な関心のための文書である.
IMAP はもともと旧来の [RFC-822] 標準向けに開発されたため, IMAP のいくつかの FETCH 項目には "RFC822" という名前が含まれている. RFC822.SIZE を除き, より新しい代替項目が存在する. 例えば RFC822.HEADER の現在の版は BODY.PEEK[HEADER] である. すべての場合において, "RFC822" は更新された [RFC-2822] 標準を参照するものとして解釈すること.