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
- そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。