Smdn.Net.Imap4.Client最新版の実装済み機能の一覧です。 IMAP関連のRFC・仕様へのリンク集も兼ねています。

§1 supported features

implemented
実装済みの機能
一部不完全な箇所があったり、仕様と異なる実装になっているかもしれません
partially implemented
部分的に実装済みの機能
コマンドの送受信のみサポートする、仕様の一部のみをサポートする、などの状態です
not tested
実装済みだが動作確認できていない機能
not implemented
実装されていない機能

§1.1 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

§1.2 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を使用します。

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

§1.4 関連リンク