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

6. クライアントコマンド (Client Commands)

IMAP4rev2 コマンドはこのセクションで説明されています。コマンドは、コマンドが許可される状態によって整理されています。複数の状態で許可されるコマンドは、許可される最小状態にリストされます (たとえば、認証済み状態と選択済み状態で有効なコマンドは、認証済み状態コマンドにリストされます)。

以下のコマンド説明で「Arguments:」で識別されるコマンド引数は、構文ではなく機能によって説明されています。コマンド引数の正確な構文は、「正式な構文」(セクション 9) で説明されています。

一部のコマンドは、特定のサーバー応答が返されることを引き起こします。これらは、以下のコマンド説明で「Responses:」によって識別されます。これらの応答に関する情報については、「応答」(セクション 7) の応答説明を参照し、これらの応答の正確な構文については、「正式な構文」(セクション 9) を参照してください。任意のコマンドの結果としてサーバーデータが送信される可能性があります。したがって、特にサーバーデータを必要としないコマンドは、「なし」ではなく「このコマンドには特定の応答がありません」と指定します。

コマンド説明の「Result:」は、コマンドに対する可能なタグ付きステータス応答と、これらのステータス応答の特別な解釈を指します。

接続の状態は、状態を変更すると文書化されている成功したコマンドによってのみ変更されます。拒否されたコマンド (BAD 応答) は、接続または選択されたメールボックスの状態を変更しません。失敗したコマンド (NO 応答) は、通常、SELECT および EXAMINE コマンドを除いて、接続または選択されたメールボックスの状態を変更しません。

6.1 クライアントコマンド - 任意の状態 (Client Commands - Any State)

次のコマンドは任意の状態で有効です:CAPABILITY、NOOP、および LOGOUT。

6.1.1 CAPABILITY コマンド

引数 (Arguments): なし

応答 (Responses): 必須のタグなし応答:CAPABILITY

結果 (Result):

  • OK - capability 完了
  • BAD - 引数が無効

CAPABILITY コマンドは、サーバーがサポートする機能のリスト (たとえば、拡張機能および/またはサーバー動作の変更) を要求します。サーバーは、(タグ付き) OK 応答の前に、リストされた機能の 1 つとして "IMAP4rev2" を含む単一のタグなし CAPABILITY 応答を送信しなければなりません (しなければなりません)。

"AUTH=" で始まる機能名は、サーバーが簡易認証とセキュリティ層 (SASL) [SASL] で定義されている特定の認証メカニズムをサポートしていることを示します。定義により、そのようなすべての名前はこの仕様の一部です。

その他の機能名は、この仕様への拡張、改訂、または修正を指します。追加情報については、セクション 7.2.2 の CAPABILITY 応答のドキュメントを参照してください。IMAP4rev1 機能が通知されていない場合、この仕様で定義されている基本 IMAP4rev2 セットを超える機能は、明示的なクライアントアクションで機能を呼び出さない限り有効になりません。IMAP4rev1 と IMAP4rev2 の両方の機能が通知されている場合、[RFC3501] で指定されている基本 IMAP4rev1 セットを超える機能は、明示的なクライアントアクションで機能を呼び出さない限り有効になりません。

クライアントおよびサーバー実装は、平文ポートで STARTTLS (セクション 6.2.1) および LOGINDISABLED 機能を実装しなければなりません (しなければなりません)。クライアントおよびサーバー実装は、平文ポートと暗黙的 TLS ポートの両方で AUTH=PLAIN ([PLAIN] で説明) 機能も実装しなければなりません (しなければなりません)。重要な情報については、セキュリティに関する考慮事項 (セクション 11) を参照してください。

特に指定がない限り、IMAP4rev1 へのすべての登録された拡張も IMAP4rev2 への有効な拡張です。

例:

C: abcd CAPABILITY
S: * CAPABILITY IMAP4rev2 STARTTLS AUTH=GSSAPI LOGINDISABLED
S: abcd OK CAPABILITY completed
C: efgh STARTTLS
S: efgh OK STARTTLS completed
<TLS ネゴシエーション、以降のコマンドは TLS レイヤー下>
C: ijkl CAPABILITY
S: * CAPABILITY IMAP4rev2 AUTH=GSSAPI AUTH=PLAIN
S: ijkl OK CAPABILITY completed

6.1.2 NOOP コマンド

引数 (Arguments): なし

応答 (Responses): このコマンドには特定の応答がありません (ただし以下を参照)

結果 (Result):

  • OK - noop 完了
  • BAD - コマンド不明または引数が無効

NOOP コマンドは常に成功します。何もしません。

任意のコマンドがタグなしデータとしてステータス更新を返すことができるため、NOOP コマンドは、非アクティブ期間中の新しいメッセージまたはメッセージステータス更新の定期的なポーリングとして使用できます (メールボックスの状態のリアルタイム更新が望ましい場合は、NOOP の代わりに IDLE コマンド (セクション 6.3.13 を参照) を使用すべきです)。NOOP コマンドは、サーバー上の非アクティブ自動ログアウトタイマーをリセットするためにも使用できます。

例:

C: a002 NOOP
S: a002 OK NOOP completed
. . .
C: a047 NOOP
S: * 22 EXPUNGE
S: * 23 EXISTS
S: * 14 FETCH (UID 1305 FLAGS (\Seen \Deleted))
S: a047 OK NOOP completed

6.1.3 LOGOUT コマンド

引数 (Arguments): なし

応答 (Responses): 必須のタグなし応答:BYE

結果 (Result):

  • OK - logout 完了
  • BAD - コマンド不明または引数が無効

LOGOUT コマンドは、クライアントが接続を終了したことをサーバーに通知します。サーバーは、(タグ付き) OK 応答の前に BYE タグなし応答を送信し、その後ネットワーク接続を閉じなければなりません (しなければなりません)。

例:

C: A023 LOGOUT
S: * BYE IMAP4rev2 Server logging out
S: A023 OK LOGOUT completed
(サーバーとクライアントは接続を閉じます)

注意: 第 6 章は広範囲にわたり、複数のサブセクションが含まれています。完全なコマンドリストについては、個別のサブセクションを参照してください: