メインコンテンツまでスキップ

1. この文書の読み方 (How to Read This Document)

1.1 この文書の構成 (Organization of This Document)

この文書は、IMAP4rev2 クライアントまたはサーバーの実装者の観点から書かれています。第2節のプロトコル概要以外では、プロトコルの動作を理解しようとする人向けに最適化されていません。第3、4、5節の内容は、IMAP4rev2 が動作する一般的なコンテキストと定義を提供します。

第6、7、9節では、それぞれ IMAP コマンド (Commands)、レスポンス (Responses)、構文 (Syntax) について説明します。これらの関係性は、それぞれを個別に理解することがほぼ不可能なものとなっています。特に、コマンドセクションだけからコマンド構文を推測しようとせず、代わりに「形式的構文」(Formal Syntax) (第9節) を参照してください。

1.2 この文書で使用される規約 (Conventions Used in This Document)

「規約」(Conventions) は基本原則または手順です。文書の規約はこのセクションに記載されています。

例において、"C:" と "S:" は、それぞれクライアント (Client) とサーバー (Server) によって送信される行を示します。各行には終端の CRLF が含まれることに注意してください。

キーワード "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"NOT RECOMMENDED"、"MAY"、"OPTIONAL" は、BCP 14 [RFC2119] [RFC8174] に記載されているとおりに解釈されるものとします (しなければならない)。ただし、ここに示すように、すべて大文字で表示される場合に限ります。

キーワードの日本語対応:

  • MUST = しなければならない
  • MUST NOT = してはならない
  • REQUIRED = 必須である
  • SHALL = しなければならない
  • SHALL NOT = してはならない
  • SHOULD = すべきである
  • SHOULD NOT = すべきでない
  • RECOMMENDED = 推奨される
  • NOT RECOMMENDED = 推奨されない
  • MAY = してもよい
  • OPTIONAL = 任意である

"can" という単語 ("may" ではない) は、プロトコルのオプション機能ではなく、可能な状況またはシナリオを指すために使用されます。

"User" (ユーザー) は人間のユーザーを指すのに使用され、"client" (クライアント) はユーザーが実行するソフトウェアを指します。

"Connection" (接続) は、ネットワーク接続の初期確立から終了までのクライアント/サーバー間の相互作用全体のシーケンスを指します。

"Session" (セッション) は、メールボックスが選択された時点 (SELECT または EXAMINE コマンド) から選択が終了する時点 (別のメールボックスの SELECT または EXAMINE、CLOSE コマンド、UNSELECT コマンド、または接続終了) までのクライアント/サーバー間の相互作用のシーケンスを指します。

"Implicit TLS" (暗黙的 TLS) という用語は、TLS 接続専用にサーバーが使用する特定の TCP ポートで TCP 接続が確立されるたびに TLS が自動的にネゴシエートされることを指します。"Implicit TLS" という用語は、確立された平文 TCP 接続上でクライアントとサーバーが明示的に TLS をネゴシエートするために使用する IMAP の STARTTLS コマンドの使用と対比することを意図しています。

特に指定がない限り、文字は 8 ビット UTF-8 です (7 ビット US-ASCII はそのサブセット)。他の文字セットは、[MIME-IMT] で説明され [CHARSET] で定義されているように "CHARSET" を使用して示されます。CHARSET は、文字セットを定義することに加えて、重要な追加のセマンティクスを持っています。詳細については、これらの文書を参照してください。

IMAP にはいくつかのプロトコル規約 (Protocol Conventions) があります。これらは、IMAP プロトコルの厳密な一部ではないが、一般的に受け入れられている慣行を反映する仕様の側面を指します。実装は、これらの規約を認識し、規約を実装するかどうかにかかわらず、競合を回避する必要があります。たとえば、"&" は、メールボックス国際命名規約 (Mailbox International Naming Convention) と競合するため、階層区切り文字 (Hierarchy Delimiter) として使用してはならず (してはならない)、メールボックス名での "&" の他の使用も影響を受けます。

1.3 実装者への特別な注意事項 (Special Notes to Implementors)

IMAP プロトコルの実装者は、このプロトコルの複雑さと相互運用可能な製品を構築する最善の方法を理解するために、この文書と併せて IMAP 実装推奨文書 [IMAP-IMPLEMENTATION] を読むことを強く推奨されます (推奨される)。

IMAP4rev2 は、IMAP4rev1 [RFC3501]、IMAP2 [IMAP2]、および未公開の IMAP2bis [IMAP2BIS] プロトコルから上位互換性を持つように設計されています。IMAP4rev2 は、RFC 3501 に記載されている IMAP4rev1 プロトコルおよび [RFC1730] に記載されている IMAP4 プロトコルとほぼ互換性があります。例外は、[RFC1730] および [RFC3501] で追加された特定の機能が問題があることが判明し、その後削除されたか、より良い代替案に置き換えられたものです。

IMAP2bis (初期プロトコルの最も一般的なバリアント) との他の互換性の問題は、[IMAP-COMPAT] で議論されています。[IMAP2] のまれな (そして絶滅したと推定される) バリアントとの互換性の問題に関する完全な議論は [IMAP-HISTORICAL] にあります。この文書は主に歴史的な関心事です。