IMAPコマンド

IMAPコマンド

前回構築したdovecotIMAPコマンドを確認します。 http://keikmobile.hatenablog.com/entry/2014/05/12/テスト用dovecot_インストール

Any State Commands

以下のコマンドは、いずれの状態でも有効なコマンドです。

CAPABILITY
  • サーバがサポートする機能一覧を表示する。
  • 引数なし。
a001 CAPABILITY
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN
a001 OK Capability completed.
NOOP
  • 何もしない。サーバのauto logoutタイマーはリセットされます。
  • 引数なし。
a001 NOOP
a001 OK NOOP completed.
LOGOUT
  • ログアウトする。
  • 引数なし。
a001 LOGOUT
* BYE Logging out
a001 OK Logout completed.

Not Authenticated State Commands

以下のコマンドは認証されていない状態で有効なコマンドです。

STARTTLS
  • 暗号通信への切り替えを要求する。
  • 引数なし
a001 STARTTLS
a001 OK Begin TLS negotiation now.
AUTHENTICATE
  • 指定した認証方法でログインする。
  • 引数: 認証方式名
LOGIN
  • ログインする。
  • 引数: ユーザ名 パスワード
a login user password
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in

Authenticated State Commands

以下のコマンドは認証されている状態で有効なコマンドです。

SELECT
a OK Expunge completed.
a001 SELECT INBOX
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1399824069] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
a001 OK [READ-WRITE] Select completed.
EXAMINE
a001 EXAMINE INBOX
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1399824069] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
a001 OK [READ-ONLY] Select completed.
CREATE
a001 CREATE NEW_FOLDER
a001 OK Create completed.
DELETE
a001 DELETE NEW_FOLDER
a001 OK Delete completed.
RENAME
a001 RENAME FOLDER NEW_FOLDER
a001 OK Rename completed.
SUBSCRIBE
a001 SUBSCRIBE FOLDER
a001 OK Subscribe completed.
UNSUBSCRIBE
a001 UNSUBSCRIBE FOLDER
a001 OK Unsubscribe completed.
LIST
a001 LIST "" "*"
* LIST (\HasNoChildren) "." "NEW_FOLDER"
* LIST (\HasNoChildren) "." "FOLDER"
* LIST (\HasNoChildren) "." "INBOX"
a001 OK List completed.
LSUB
a001 LSUB "" "*"
* LSUB () "." "FOLDER"
a001 OK Lsub completed.
STATUS
  • メールボックスのステータスを表示する。
  • 引数: メールボックス名 ステータス名
  • ステータス名: MESSAGES , RECENT, UIDNEXT, UIDVALIDITY, UNSEEN
a001 STATUS INBOX (MESSAGES)
* STATUS "INBOX" (MESSAGES 0)
a001 OK Status completed.
APPEND
a001 APPEND INBOX {10}
+ OK
TEST TEST
a001 OK [APPENDUID 1399824069 3] Append completed.

Selected State Commands

以下のコマンドはメールボックスが選択されている状態で有効なコマンドです。

CHECK
  • 選択中のメールボックスのチェックポイントを要求する。
  • 引数なし
a001 CHECK
a001 OK Check completed.
CLOSE
a001 CLOSE
a001 OK Close completed.
EXPUNGE
  • Deletedフラグがセットされているメッセージ全てを削除する。
  • 引数なし
a001 STORE 1 +FLAGS (\Deleted)  
* 1 FETCH (FLAGS (\Deleted))
a001 OK Store completed.
a001 EXPUNGE
* 1 EXPUNGE
a001 OK Expunge completed.
SEARCH
  • 引数の条件にマッチしたメッセージのシーケンス番号を表示する。
  • 引数: [キャラクタセット] 検索条件
  • 検索条件:
    • ALL: メールボックスの全てのメッセージ
    • ANSWERED: Answeredフラグがセットされているメッセージ
    • BCC : エンベロープBCCを含むメッセージ
    • BEFORE : よりも前の内部日付のメッセージ
    • BODY : メッセージ本文にを含むメッセージ
    • CC : エンベロープCCにを含むメッセージ
    • DELETED: Deletedフラグがセットされているメッセージ
    • DRAFT: Draftプラグがセットされているメッセージ
    • FLAGGED: Flaggedフラグがセットされているメッセージ
    • FROM: エンベロープFROMにを含むメッセージ
    • HEADER: <field-name> : <field-name>ヘッダーにを含むメッセージ
    • KEYWORD : フラグがセットされているメッセージ
    • LARGER : メッセージサイズがより大きいメッセージ
    • NEW: Recnetフラグがセットされておりかつ、Seenフラグがセットされていないメッセージ
    • NOT <search-key>: <search-key>にマッチしないメッセージ
    • OLD: Recnetフラグがセットされていないメッセージ
    • ON: の内部日付のメッセージ
    • OR <search-key1> <search-key2>: <search-key1>かつ<search-key2>にマッチするメッセージ
    • RECENT: Recnetフラグがセットされているメッセージ
    • SEEN: Seenフラグがセットされているメッセージ
    • SENTBEFORE : よりも前のDateヘッダーのメッセージ
    • SENTON : のDateヘッダーのメッセージ
    • SENTSINCE : よりも後のDateヘッダーのメッセージ
    • SINCE : よりも後の内部日付のメッセージ
    • SMALLER : メッセージサイズがより小さいメッセージ
    • SUBJECT : エンベロープSUBJECTにを含むメッセージ
    • TEXT : ヘッダー又はメッセージ本文にを含むメッセージ
    • TO : エンベロープTOにを含むメッセージ
    • UID : で指定されたUIDのメッセージ
    • UNANSWERED: Answeredフラグがセットされていないメッセージ
    • UNDELETED: Deletedフラグがセットされていないメッセージ
    • UNDRAFT: Draftフラグがセットされていないメッセージ
    • UNFLAGGED: Flaggedフラグがセットされていないメッセージ
    • UNKEYWORD : フラグがセットされていないメッセージ
    • UNSEEN: Seenフラグがセットされていないメッセージ
a001 SEARCH ALL
* SEARCH 1 2 3 4 5
a001 OK Search completed (0.000 secs).
FETCH
  • 指定したメッセージ情報を取得する。
  • 引数: シーケンス番号 データアイテム名
  • データアイテム名:
    • ALL: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE)と同じ。
    • FAST: (FLAGS INTERNALDATE RFC822.SIZE)と同じ。
    • FULL: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE BODY)と同じ。
    • BODY
    • BODY.PEEK
    • BODYSTRUCTURE
    • ENVELOPE
    • FLAGS
    • INTERNALDATE
    • RFC822
    • RFC822.HEADER
    • RFC822.SIZE
    • RFC822.TEXT
    • UID
a001 fetch 1 RFC822
* 1 FETCH (FLAGS (\Seen) RFC822 {9}
TEST TEST)
a001 OK Fetch completed.
STORE
  • メッセージのフラグを変更する。
  • 引数: シーケンス番号 フラグ状態 フラグ名
  • フラグ状態
    • FLAGS : でフラグを置き換える。
    • FLAGS.SILENT : でフラグを置き換える。表示はしない。
    • +FLAGS : のフラグを追加する。
    • +FLAGS.SILENT :のフラグを追加する。表示はしない。
    • -FLAGS : のフラグを削除する。
    • -FLAGS.SILENT : のフラグを削除する。表示はしない。
COPY
a001 COPY 1 INBOX
* 6 EXISTS
* 1 RECENT
a001 OK [COPYUID 1399824069 3 8] Copy completed.
UID
  • COPY、FETCH、STOREコマンドをUIDを指定で実行する。
  • 引数: コマンド コマンド引数(UID)
a001 UID FETCH 3 RFC822
* 1 FETCH (UID 3 RFC822 {9}
TEST TEST)
a001 OK Fetch completed.