Smdn.Net.Imap4.Client最新版の実装済み機能の一覧です。 IMAP関連のRFC・仕様へのリンク集も兼ねています。
supported features
- implemented
- 実装済みの機能
一部不完全な箇所があったり、仕様と異なる実装になっているかもしれません - partially implemented
- 部分的に実装済みの機能
コマンドの送受信のみサポートする、仕様の一部のみをサポートする、などの状態です - not tested
- 実装済みだが動作確認できていない機能
- not implemented
- 実装されていない機能
standards and IMAP extensions
サポートする標準仕様およびIMAP拡張仕様の一覧です。 標準化されていないドラフトも一部サポートしています。
| RFC | capability name | status | note |
| [RFC 2087] IMAP4 QUOTA extension | QUOTA | implemented | |
| [RFC 2088] IMAP4 non-synchronizing literals | LITERAL+ | implemented | |
| [RFC 2177] IMAP4 IDLE command | IDLE | implemented | |
| [RFC 2180] IMAP4 Multi-Accessed Mailbox Practice | - | partially implemented | |
| [RFC 2193] IMAP4 Mailbox Referrals | MAILBOX-REFERRALS | partially implemented | |
| [RFC 2221] IMAP4 Login Referrals | LOGIN-REFERRALS | partially implemented | |
| [RFC 2342] IMAP4 Namespace | NAMESPACE | implemented | |
| [RFC 2595] Using TLS with IMAP, POP3 and ACAP | STARTTLS | implemented | |
| [RFC 2595] Using TLS with IMAP, POP3 and ACAP | LOGINDISABLED | implemented | |
| [RFC 2683] IMAP4 Implementation Recommendations | - | partially implemented | |
| [RFC 2971] IMAP4 ID extension | ID | implemented | |
| [RFC 3348] The Internet Message Action Protocol (IMAP4) Child Mailbox Extension | CHILDREN | implemented | |
| [RFC 3501] INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 | IMAP4rev1 | implemented | |
| [RFC 3502] Internet Message Access Protocol (IMAP) - MULTIAPPEND Extension | MULTIAPPEND | implemented | |
| [RFC 3516] IMAP4 Binary Content Extension | BINARY | not tested | |
| [RFC 3691] Internet Message Access Protocol (IMAP) UNSELECT command | UNSELECT | implemented | |
| [RFC 4314] IMAP4 Access Control List (ACL) Extension | ACL | not implemented | |
| [RFC 4314] IMAP4 Access Control List (ACL) Extension | RIGHTS=* | not implemented | |
| [RFC 4315] Internet Message Access Protocol (IMAP) - UIDPLUS extension | UIDPLUS | implemented | |
| [RFC 4466] Collected Extensions to IMAP4 ABNF | - | implemented | |
| [RFC 4467] Internet Message Access Protocol (IMAP) - URLAUTH Extension | URLAUTH | not implemented | |
| [RFC 4469] Internet Message Access Protocol (IMAP) CATENATE Extension | CATENATE | not implemented | |
| [RFC 4549] Synchronization Operations for Disconnected IMAP4 Clients | - | not implemented | |
| [RFC 4551] IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization | CONDSTORE | partially implemented | |
| [RFC 4731] IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned | ESEARCH | implemented | |
| [RFC 4959] IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response | SASL-IR | implemented | |
| [RFC 4978] The IMAP COMPRESS Extension | COMPRESS=DEFLATE | not implemented | |
| [RFC 5032] WITHIN Search Extension to the IMAP Protocol | WITHIN | implemented | |
| [RFC 5092] IMAP URL Scheme | - | partially implemented | URLAUTHは未実装です。 URLにUIDVALIDITYが指定されていてもUIDの検証は行いません。 [独自拡張]URLのスキームがimapsの場合、デフォルトポートとして993を使用し、SSLによる接続を試みます。 |
| [RFC 5161] The IMAP ENABLE Extension | ENABLE | implemented | |
| [RFC 5162] IMAP4 Extensions for Quick Mailbox Resynchronization | QRESYNC | not implemented | |
| [RFC 5182] IMAP Extension for Referencing the Last SEARCH Result | SEARCHRES | implemented | |
| [RFC 5255] Internet Message Access Protocol Internationalization | I18NLEVEL=1 | implemented | |
| [RFC 5255] Internet Message Access Protocol Internationalization | I18NLEVEL=2 | implemented | |
| [RFC 5255] Internet Message Access Protocol Internationalization | LANGUAGE | implemented | |
| [RFC 5256] Internet Message Access Protocol - SORT and THREAD Extensions | SORT | implemented | |
| [RFC 5256] Internet Message Access Protocol - SORT and THREAD Extensions | THREAD=ORDEREDSUBJECT | implemented | |
| [RFC 5256] Internet Message Access Protocol - SORT and THREAD Extensions | THREAD=REFERENCES | implemented | |
| [RFC 5257] Internet Message Access Protocol - ANNOTATE Extension | ANNOTATE-EXPERIMENT-1 | not implemented | |
| [RFC 5258] Internet Message Access Protocol version 4 - LIST Command Extensions | LIST-EXTENDED | implemented | |
| [RFC 5259] Internet Message Access Protocol - CONVERT Extension | CONVERT | not implemented | |
| [RFC 5267] Contexts for IMAP4 | CONTEXT=SEARCH | not implemented | |
| [RFC 5267] Contexts for IMAP4 | CONTEXT=SORT | not implemented | |
| [RFC 5267] Contexts for IMAP4 | ESORT | implemented | |
| [RFC 5464] The IMAP METADATA Extension | METADATA | not tested | |
| [RFC 5464] The IMAP METADATA Extension | METADATA-SERVER | not tested | |
| [RFC 5465] The IMAP NOTIFY Extension | NOTIFY | not implemented | |
| [RFC 5466] IMAP4 Extension for Named Searches (Filters) | FILTERS | not tested | |
| [RFC 5524] Extended URLFETCH for Binary and Converted Parts | URLAUTH=BINARY | not implemented | |
| [RFC 5530] IMAP Response Codes | - | implemented | |
| [RFC 5550] The Internet Email to Support Diverse Service Environments (Lemonade) Profile | URL-PARTIAL | not implemented | |
| [RFC 5819] IMAP4 Extension for Returning STATUS Information in Extended LIST | LIST-STATUS | implemented | |
| [RFC 5957] Display-Based Address Sorting for the IMAP4 SORT Extension | SORT=DISPLAY | implemented | |
| [RFC 6154] IMAP LIST Extension for Special-Use Mailboxes | CREATE-SPECIAL-USE | not tested | |
| [RFC 6154] IMAP LIST Extension for Special-Use Mailboxes | SPECIAL-USE | partially implemented | |
| [RFC 6203] IMAP4 Extension for Fuzzy Search | SEARCH=FUZZY | not implemented | |
| [RFC 6237] IMAP4 Multimailbox SEARCH Extension | MULTISEARCH | not implemented | |
| [RFC 6785] Support for Internet Message Access Protocol (IMAP) Events in Sieve | IMAPSISEVE= | not implemented | |
| [RFC 6851] Internet Message Access Protocol (IMAP) - MOVE Extension | MOVE | implemented | |
| [RFC 6855] IMAP Support for UTF-8 | UTF8=ACCEPT | not implemented | |
| [RFC 6855] IMAP Support for UTF-8 | UTF8=ONLY | not implemented | |
| RFC | capability name | status | note |
commands
サポートするコマンドの一覧です。
| command | RFC | status | note |
| [RFC3501] Client Commands - Any State | RFC 3501 6.1 | - | - |
|---|---|---|---|
| CAPABILITY | RFC 3501 6.1.1 | implemented | |
| NOOP | RFC 3501 6.1.2 | implemented | |
| LOGOUT | RFC 3501 6.1.3 | implemented | |
| [RFC3501] Client Commands - Not Authenticated State | RFC 3501 6.3 | - | - |
| STARTTLS | RFC 3501 6.2.1 | implemented | |
| AUTHENTICATE | RFC 3501 6.2.2 | implemented | |
| LOGIN | RFC 3501 6.2.3 | implemented | |
| [RFC3501] Client Commands - Authenticated State | RFC 3501 6.3 | - | - |
| SELECT | RFC 3501 6.3.1 RFC 4466 2.1 | implemented | Modified UTF-7対応*1 |
| EXAMINE | RFC 3501 6.3.2 RFC 4466 2.1 | implemented | Modified UTF-7対応*1 |
| CREATE | RFC 3501 6.3.3 RFC 4466 2.2 | implemented | Modified UTF-7対応*1 |
| DELETE | RFC 3501 6.3.4 | implemented | Modified UTF-7対応*1 |
| RENAME | RFC 3501 6.3.5 RFC 4466 2.3 | implemented | Modified UTF-7対応*1 |
| SUBSCRIBE | RFC 3501 6.3.6 | implemented | Modified UTF-7対応*1 |
| UNSUBSCRIBE | RFC 3501 6.3.7 | implemented | Modified UTF-7対応*1 |
| LIST | RFC 3501 6.3.8 | implemented | Modified UTF-7対応*1 |
| LSUB | RFC 3501 6.3.9 | implemented | Modified UTF-7対応*1 |
| STATUS | RFC 3501 6.3.10 | implemented | Modified UTF-7対応*1 |
| APPEND | RFC 3501 6.3.11 RFC 4466 2.7 | implemented | Modified UTF-7対応*1 |
| [RFC3501] Client Commands - Selected State | RFC 3501 6.4 | - | - |
| CHECK | RFC 3501 6.4.1 | implemented | |
| CLOSE | RFC 3501 6.4.2 | implemented | |
| EXPUNGE | RFC 3501 6.4.3 | implemented | |
| SEARCH, UID SEARCH | RFC 3501 6.4.4 RFC 3501 6.4.11 RFC 4466 2.6 | implemented | 非ASCII文字での検索に対応*2 |
| FETCH, UID FETCH | RFC 3501 6.4.5 RFC 3501 6.4.11 RFC 4466 2.4 | implemented | |
| STORE, UID STORE | RFC 3501 6.4.6 RFC 3501 6.4.11 RFC 4466 2.5 | implemented | |
| COPY, UID COPY | RFC 3501 6.4.7 RFC 3501 6.4.11 | implemented | Modified UTF-7対応*1 |
| Extensions | - | - | - |
| SETQUOTA | RFC 2087 4.1 | implemented | |
| GETQUOTA | RFC 2087 4.2 | implemented | |
| GETQUOTAROOT | RFC 2087 4.3 | implemented | |
| IDLE | RFC 2177 3 | implemented | |
| RLIST | RFC 2193 5.1 | not tested | |
| RLSUB | RFC 2193 5.2 | not tested | |
| NAMESPACE | RFC 2342 5 | implemented | |
| ID | RFC 2971 3.1 | implemented | |
| APPEND (MULTIAPPEND) | RFC 3502 6.3.11 | implemented | |
| UNSELECT | RFC 3691 2 | implemented | |
| SETACL | RFC 4314 3.1 | not implemented | |
| DELETEACL | RFC 4314 3.2 | not implemented | |
| GETACL | RFC 4314 3.3 | not implemented | |
| LISTRIGHTS | RFC 4314 3.4 | not implemented | |
| MYRIGHTS | RFC 4314 3.5 | not implemented | |
| UID EXPUNGE | RFC 4315 2.1 | implemented | |
| RESETKEY | RFC 4467 7 | not implemented | |
| GENURLAUTH | RFC 4467 7 | not implemented | |
| URLFETCH | RFC 4467 7 RFC 5524 3 | not implemented | |
| FETCH with CHANGEDSINCE FETCH modifier | RFC 4551 3.3.1 | implemented | |
| STORE with UNCHANGEDSINCE STORE modifier | RFC 4551 3.2 | implemented | |
| SELECT with CONDSTORE parameter | RFC 4551 3.7 | implemented | |
| EXAMINE with CONDSTORE parameter | RFC 4551 3.7 | implemented | |
| SEARCH with RETURN result specifier | RFC 4731 3.1 RFC 5182 2.1 draft-ietf-morg-inthread-00 3.5 | implemented | |
| SORT with RETURN result specifier | RFC 4731 3.1 RFC 5182 2.1 draft-ietf-morg-inthread-00 3.5 | implemented | |
| COMPRESS | RFC 4978 3 | not implemented | |
| ENABLE | RFC 5161 3.1 | implemented | |
| LANGUAGE | RFC 5255 3.2 | not tested | |
| COMPARATOR | RFC 5255 4.7 | not tested | |
| SORT, UID SORT | RFC 5256 3 | implemented | 非ASCII文字での検索に対応*2 |
| THREAD, UID THREAD | RFC 5256 3 | implemented | 非ASCII文字での検索に対応*2 |
| CONVERSIONS | RFC 5259 5.1 | not implemented | |
| CONVERT, UID CONVERT | RFC 5259 6 | not implemented | |
| GETMETADATA | RFC 5464 4.2 | not tested | |
| SETMETADATA | RFC 5464 4.3 | not tested | |
| NOTIFY | RFC 5465 3.1 | not implemented | |
| LIST with STATUS return option | RFC 5819 2 | implemented | |
| CREATE with special-use flags | RFC 6154 3 | not tested | |
| MOVE | RFC 6851 3.1 | implemented | |
| command | RFC | status | note |
- Modified UTF-7対応*1
- メールボックス名に非ASCII文字を含む場合、自動的にModified UTF-7に変換します。
- 非ASCII文字での検索に対応*2
- 文字コードには任意のSystem.Text.Encodingを指定できます。 明示的に指定しない場合はUTF-8を使用します。
response codes
サポートするレスポンスコードの一覧です。
| response code | RFC | status | note |
| NEWNAME | RFC 2060 | not implemented | |
| REFERRAL | RFC 2221 | partially implemented | デフォルトでは通常のNOレスポンスと同様*1に扱います。 オプションでIMAP URLを含む例外をスローするかどうか指定できます。 |
| ALERT | RFC 3501 | implemented | TraceEventType.InformationのイベントでメッセージをTraceSourceに出力します。 |
| BADCHARSET | RFC 3501 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| CAPABILITY | RFC 3501 | implemented | |
| PARSE | RFC 3501 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| PERMANENTFLAGS | RFC 3501 | implemented | |
| READ-ONLY | RFC 3501 | implemented | |
| READ-WRITE | RFC 3501 | implemented | |
| TRYCREATE | RFC 3501 | implemented | デフォルトでは通常のNOレスポンスと同様*1に扱います。 オプションで自動的にメールボックスを作成するかどうか指定できます。 |
| UIDNEXT | RFC 3501 | implemented | |
| UIDVALIDITY | RFC 3501 | implemented | |
| UNSEEN | RFC 3501 | implemented | |
| UNKNOWN-CTE | RFC 3516 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| UIDNOTSTICKY | RFC 4315 | implemented | |
| APPENDUID | RFC 4315 | implemented | |
| COPYUID | RFC 4315 | implemented | |
| URLMECH | RFC 4315 | not implemented | |
| TOOBIG | RFC 4469 | not implemented | |
| BADURL | RFC 4469 | not implemented | |
| HIGHESTMODSEQ | RFC 4551 | implemented | |
| NOMODSEQ | RFC 4551 | implemented | |
| MODIFIED | RFC 4551 | implemented | |
| COMPRESSIONACTIVE | RFC 4978 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| CLOSED | RFC 5162 | not implemented | |
| NOTSAVED | RFC 5182 | implemented | |
| BADCOMPARATOR | RFC 5255 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| ANNOTATE | RFC 5257 | not implemented | |
| ANNOTATIONS | RFC 5257 | not implemented | |
| TEMPFAIL | RFC 5259 | not implemented | |
| MAXCONVERTMESSAGES | RFC 5259 | not implemented | |
| MAXCONVERTPARTS | RFC 5259 | not implemented | |
| NOUPDATE | RFC 5267 | not implemented | |
| METADATA LONGENTRIES | RFC 5464 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| METADATA MAXSIZE | RFC 5464 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| METADATA TOOMANY | RFC 5464 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| METADATA NOPRIVATE | RFC 5464 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| NOTIFICATIONOVERFLOW | RFC 5465 | not implemented | |
| BADEVENT | RFC 5465 | not implemented | |
| UNDEFINED-FILTER | RFC 5466 | partially implemented | 通常のNOレスポンスと同様*1に扱います。 |
| UNAVAILABLE | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| AUTHENTICATIONFAILED | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| AUTHORIZATIONFAILED | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| EXPIRED | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| PRIVACYREQUIRED | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| CONTACTADMIN | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| NOPERM | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| INUSE | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| EXPUNGEISSUED | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| CORRUPTION | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| SERVERBUG | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| CLIENTBUG | RFC 5530 | implemented | TraceEventType.InformationのイベントでメッセージをTraceSourceに出力します。 |
| CANNOT | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| LIMIT | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| OVERQUOTA | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| ALREADYEXISTS | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| NONEXISTENT | RFC 5530 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| USERATTR | RFC 6154 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| DOWNGRADED | RFC 6858 | partially implemented | 通常のレスポンスと同様*1に扱います。 |
| response code | RFC | status | note |
- 通常のレスポンスと同様*1
- そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。