2014-07-19T00:26:46の更新内容

works/libs/Smdn.Net.Imap4.Client/index.wiki.txt

current previous
14,7 14,7
 
本ライブラリは[[MIT X11ライセンス:http://sourceforge.jp/projects/opensource/wiki/licenses/MIT_license]]でのリリースとなります。
本ライブラリは[[MIT X11ライセンス:http://sourceforge.jp/projects/opensource/wiki/licenses/MIT_license]]でのリリースとなります。
 

        

        
 
:最新版 (ソースコード)|${smdncms:distfilelink,Smdn.Net.Imap4.Client-1.05.tar.bz2}
:最新版 (ソースコード)|${smdncms:distfilelink,Smdn.Net.Imap4.Client-1.05.tar.bz2}
~
${smdncms:distfilelink,Smdn.Net.Imap4.Client-1.10.tar.bz2}
${smdncms:distfilelink,Smdn.Net.Imap4.Client-1.09.tar.bz2}
 
:開発版|[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
:開発版|[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
 
:ビルド済みパッケージ・過去のバージョン|[[works/libs/Smdn.Net.Imap4.Client/releases]]をご覧ください
:ビルド済みパッケージ・過去のバージョン|[[works/libs/Smdn.Net.Imap4.Client/releases]]をご覧ください
 

        

        
98,20 98,19
 

        

        
 
その他、サポートしている機能の詳細は[[works/libs/Smdn.Net.Imap4.Client/features]]をご覧ください。
その他、サポートしている機能の詳細は[[works/libs/Smdn.Net.Imap4.Client/features]]をご覧ください。
 

        

        
+
**主な特徴
+
:メッセージ本文はStreamとして取得可能|メッセージの加工・解析に任意の手段を使用できるよう、&msdn(netfx,type,System.IO.Stream){Stream};として返します。 MIMEメッセージのデコード機能は本ライブラリでは提供していません。 (MIMEのデコードには[[works/libs/Smdn.Formats.Mime]]やその他任意のライブラリが利用できます)
+
:TAPによる非同期操作のサポート|接続・認証やIMAPの各種操作に対応するほとんどのメソッドに関して、同期バージョンの他に&msdn(netfx,id,hh873175){TAP(Taskクラス)};による非同期操作に対応したバージョンも用意しています。
+
:StreamReader, Regexは不使用|送受信時の文字列処理はstringではなくbyte[]のまま処理しています。 byte[]⇄stringの変換に起因する不必要なメモリの消費と速度の低下はできる限り抑えてあります。 また、大きなメッセージを取得する際もLarge Object Heapを消費しないよう実装しています。
+
:ログ出力にTraceSourceを使用|送受信内容・動作状況のログを&msdn(netfx,type,System.Diagnostics.TraceListener){TraceListener};で取得できます。 またログ出力のレベルを設定できます。 イベントハンドラによる送受信時のフックは無駄と考え用意していません。
+
:パース済みのレスポンスにアクセス可能|受信したレスポンスは必要な部分だけを拾い読みして結果を返すのではなく、全てパースしてから結果を返します。
+
:フリー・オープンソース|本ライブラリは[[MIT X11ライセンス:http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license]]を採用しています。
+

          
 
**クライアント実装
**クライアント実装
 
クライアント実装として以下の3つのクラスを用意しています。
クライアント実装として以下の3つのクラスを用意しています。
 
:ImapClientクラス|メールボックス/メッセージをSystem.IO.DirectoryInfo/FileInfoクラスに似たインターフェイスで操作できるようにIMAP操作を抽象化したクライアント
:ImapClientクラス|メールボックス/メッセージをSystem.IO.DirectoryInfo/FileInfoクラスに似たインターフェイスで操作できるようにIMAP操作を抽象化したクライアント
 
:ImapSessionクラス|IMAPコマンドと1対1に対応するメソッドを持つクライアント
:ImapSessionクラス|IMAPコマンドと1対1に対応するメソッドを持つクライアント
 
:ImapWebRequest/ImapWebResponseクラス|WebRequest/WebResponseクラスから派生し、IMAP URL(&urn2url(urn:ietf:rfc:5092,short);)での操作に対応したクライアント (別アセンブリ[[works/libs/Smdn.Net.Imap4.WebClients]]で提供)
:ImapWebRequest/ImapWebResponseクラス|WebRequest/WebResponseクラスから派生し、IMAP URL(&urn2url(urn:ietf:rfc:5092,short);)での操作に対応したクライアント (別アセンブリ[[works/libs/Smdn.Net.Imap4.WebClients]]で提供)
 

        

        
-
**その他の主な特徴
-
:メッセージ本文はStreamとして取得可能|メッセージの加工・解析は任意の手段を使用できるよう、Streamとして返します。 MIMEメッセージのデコード機能は含んでいません。 (MIMEのデコードには[[works/libs/Smdn.Formats.Mime]]が利用できます)
-
:StreamReader, Regexは不使用|送受信時の文字列処理はstringではなくbyte[]のまま処理しています。 byte[]⇄stringの変換に起因する不必要なメモリの消費と速度の低下はできる限り抑えてあります。 また、大きなメッセージを取得してもLarge Object Heapを消費しないよう実装しています。
-
:ログ出力にTraceSourceを使用|送受信内容・動作状況のログをTraceListenerで取得できます。 またログ出力のレベルを設定できます。 イベントハンドラによる送受信時のフックは無駄と考え用意していません。
-
:パース済みのレスポンスにアクセス可能|受信したレスポンスは必要な部分だけを拾い読みして結果を返すのではなく、全てパースしてから結果を返します。
-
:フリー・オープンソース|本ライブラリは[[MIT X11ライセンス:http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license]]を採用しています。
-

          
 
*動作状況
*動作状況
 
以下のIMAPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、IMAPでのアクセスが可能なメールサービスでの動作報告を頂いています。
以下のIMAPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、IMAPでのアクセスが可能なメールサービスでの動作報告を頂いています。
 
-GMail (Gimap)
-GMail (Gimap)

works/libs/Smdn.Net.Imap4.Client/docs/index.wiki.txt

current previous
2,7 2,7
 
${smdncms:keywords,}
${smdncms:keywords,}
 
${smdncms:document_versions,codelang=cs,codelang=vb}
${smdncms:document_versions,codelang=cs,codelang=vb}
 
${pragma,parser-options,non-limited-list}
${pragma,parser-options,non-limited-list}
~
[[works/libs/Smdn.Net.Imap4.Client]]のドキュメントとサンプルです。 ここに記載されているものは[[version 1.10>works/libs/Smdn.Net.Imap4.Client/releases#changes_v1.10]]時点のものです。
[[works/libs/Smdn.Net.Imap4.Client]]のドキュメントとサンプルです。 ここに記載されているものは[[version 1.09>works/libs/Smdn.Net.Imap4.Client/releases#changes_v1.09]]時点のものです。
 

        

        
 
認証・接続のサンプルコードは[[#connection_authentication_examples]]、IMAP操作を行う具体例は[[#operation_examples]]に記載しています。
認証・接続のサンプルコードは[[#connection_authentication_examples]]、IMAP操作を行う具体例は[[#operation_examples]]に記載しています。
 

        

        
2242,114 2242,18
 

        

        
 
|*メールボックスの取得と作成に関するメソッド
|*メールボックスの取得と作成に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapClient|{{
|~ImapClient|GetInbox()&br;GetInbox(ImapMailboxListOptions)|INBOXを取得します。|LIST/LSUB|
~
GetInbox()
|~|GetMailbox(string)&br;GetMailbox(string, ImapMailboxListOptions)|指定した名前のメールボックスを取得します。|LIST/LSUB|
~
GetInbox(ImapMailboxListOptions)
|~|GetMailbox(ImapSpecialMailbox)&br;GetMailbox(ImapSpecialMailbox, ImapMailboxListOptions)|ImapSpecialMailboxで指定した種類のメールボックスを取得します。|LIST/LSUB|
~
}}|INBOXを取得します。|LIST/LSUB|
|~|GetMailboxes()&br;GetMailboxes(ImapMailboxListOptions)|すべてのメールボックスを取得します。|LIST/LSUB|
~
|~|{{
|~|GetOrCreateMailbox(string)&br;GetOrCreateMailbox(string, ImapMailboxListOptions)&br;GetOrCreateMailbox(string, bool)&br;GetOrCreateMailbox(string, bool, ImapMailboxListOptions)|指定した名前のメールボックスを取得します。 存在しない場合は作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|LIST/LSUB, CREATE, SUBSCRIBE|
~
GetInboxAsync()
|~|CreateMailbox(string)&br;CreateMailbox(string, bool)|指定した名前のメールボックスを作成します。|CREATE, SUBSCRIBE|
~
GetInboxAsync(ImapMailboxListOptions)
|~ImapMailboxInfo|GetChildren()&br;GetChildren(ImapMailboxListOptions)|現在のメールボックスの下位にあるすべてのメールボックスを取得します。|LIST/LSUB|
~
}}|~|~|
|~|GetChild(string)&br;GetChild(string, ImapMailboxListOptions)|現在のメールボックスの下位にある指定した名前のメールボックスを取得します。|LIST/LSUB|
~
|~|{{
|~|GetParent()&br;GetParent(ImapMailboxListOptions)|現在のメールボックスの上位のメールボックスを取得します。|LIST/LSUB|
~
GetMailbox(string)
|~|GetOrCreateParent()&br;GetOrCreateParent(ImapMailboxListOptions)&br;GetOrCreateParent(bool)&br;GetOrCreateParent(bool, ImapMailboxListOptions)|現在のメールボックスの上位のメールボックスを取得します。 存在しない場合は作成します。|LIST/LSUB, CREATE, SUBSCRIBE|
~
GetMailbox(string, ImapMailboxListOptions)
|~|GetOrCreateChild(string)&br;GetOrCreateChild(string, ImapMailboxListOptions)&br;GetOrCreateChild(string, bool)&br;GetOrCreateChild(string, bool, ImapMailboxListOptions)|現在のメールボックスの下位にある指定した名前のメールボックスを取得します。 存在しない場合は作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|LIST/LSUB, CREATE, SUBSCRIBE|
~
}}|指定した名前のメールボックスを取得します。|~|
|~|CreateChild(string)&br;CreateChild(string, bool)|現在のメールボックスの下位に指定した名前でメールボックスを作成します。|CREATE, SUBSCRIBE|
+
|~|{{
+
GetMailboxAsync(string)
+
GetMailboxAsync(string, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetMailbox(ImapSpecialMailbox)
+
GetMailbox(ImapSpecialMailbox, ImapMailboxListOptions)
+
}}|ImapSpecialMailboxで指定した種類のメールボックスを取得します。|~|
+
|~|{{
+
GetMailboxAsync(ImapSpecialMailbox)
+
GetMailboxAsync(ImapSpecialMailbox, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetMailboxes()
+
GetMailboxes(ImapMailboxListOptions)
+
}}|すべてのメールボックスを取得します。|~|
+
|~|{{
+
GetMailboxesAsync()
+
GetMailboxesAsync(ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetOrCreateMailbox(string)
+
GetOrCreateMailbox(string, ImapMailboxListOptions)
+
GetOrCreateMailbox(string, bool)
+
GetOrCreateMailbox(string, bool, ImapMailboxListOptions)
+
}}|指定した名前のメールボックスを取得します。 存在しない場合は作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|LIST/LSUB, CREATE, SUBSCRIBE|
+
|~|{{
+
GetOrCreateMailboxAsync(string)
+
GetOrCreateMailboxAsync(string, ImapMailboxListOptions)
+
GetOrCreateMailboxAsync(string, bool)
+
GetOrCreateMailboxAsync(string, bool, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
CreateMailbox(string)
+
CreateMailbox(string, bool)
+
}}|指定した名前のメールボックスを作成します。|CREATE, SUBSCRIBE|
+
|~|{{
+
CreateMailboxAsync(string)
+
CreateMailboxAsync(string, bool)
+
}}|~|~|
+
|~ImapMailboxInfo|{{
+
GetChildren()
+
GetChildren(ImapMailboxListOptions)
+
}}|現在のメールボックスの下位にあるすべてのメールボックスを取得します。|LIST/LSUB|
+
|~|{{
+
GetChildrenAsync()
+
GetChildrenAsync(ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetChild(string)
+
GetChild(string, ImapMailboxListOptions)
+
}}|現在のメールボックスの下位にある指定した名前のメールボックスを取得します。|~|
+
|~|{{
+
GetChildAsync(string)
+
GetChildAsync(string, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetParent()
+
GetParent(ImapMailboxListOptions)
+
}}|現在のメールボックスの上位のメールボックスを取得します。|~|
+
|~|{{
+
GetParentAsync()
+
GetParentAsync(ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetOrCreateParent()
+
GetOrCreateParent(ImapMailboxListOptions)
+
GetOrCreateParent(bool)
+
GetOrCreateParent(bool, ImapMailboxListOptions)
+
}}|現在のメールボックスの上位のメールボックスを取得します。 存在しない場合は作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|LIST/LSUB, CREATE, SUBSCRIBE|
+
|~|{{
+
GetOrCreateParentAsync()
+
GetOrCreateParentAsync(ImapMailboxListOptions)
+
GetOrCreateParentAsync(bool)
+
GetOrCreateParentAsync(bool, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
GetOrCreateChild(string)
+
GetOrCreateChild(string, ImapMailboxListOptions)
+
GetOrCreateChild(string, bool)
+
GetOrCreateChild(string, bool, ImapMailboxListOptions)
+
}}|現在のメールボックスの下位にある指定した名前のメールボックスを取得します。 存在しない場合は作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|~|
+
|~|{{
+
GetOrCreateChildAsync(string)
+
GetOrCreateChildAsync(string, ImapMailboxListOptions)
+
GetOrCreateChildAsync(string, bool)
+
GetOrCreateChildAsync(string, bool, ImapMailboxListOptions)
+
}}|~|~|
+
|~|{{
+
CreateChild(string)
+
CreateChild(string, bool)
+
}}|現在のメールボックスの下位に指定した名前でメールボックスを作成します。 オプションで、メールボックスを作成した場合に購読するかどうか指定できます。|CREATE, SUBSCRIBE|
+
|~|{{
+
CreateChildAsync(string)
+
CreateChildAsync(string, bool)
+
}}|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
:すべてのメソッド|これらのメソッドは、メールボックスを表すImapMailboxInfoクラスのインスタンス、もしくは読み取り専用のIList<ImapMailboxInfo>(.NET 4.5ではIReadOnlyList<ImapMailboxInfo>)を返します。
:すべてのメソッド|これらのメソッドは、メールボックスを表すImapMailboxInfoクラスのインスタンス、もしくは読み取り専用のIList<ImapMailboxInfo>(.NET 4.5ではIReadOnlyList<ImapMailboxInfo>)を返します。
2394,62 2298,13
 

        

        
 
|*メールボックスの削除・作成・リネーム等の操作に関するメソッド
|*メールボックスの削除・作成・リネーム等の操作に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapMailboxInfo|{{
|~ImapMailboxInfo|Refresh()&br;Refresh(bool)|メールボックスのステータスを更新します。 オプションでメールボックスの属性を表すフラグも再取得して更新するかどうかを指定できます。|STATUS, LIST|
~
Refresh()
|~|Delete()&br;Delete(bool)|メールボックスが存在する場合、削除します。 オプションで購読解除するかどうか指定できます。|DELETE, UNSUBSCRIBE|
~
Refresh(bool)
|~|Create()&br;Create(bool)|メールボックスが存在しない場合、作成します。 オプションで購読するかどうか指定できます。|CREATE, SUBSCRIBE|
~
}}|メールボックスのステータスを更新します。 オプションでメールボックスの属性を表すフラグも再取得して更新するかどうかを指定できます。|STATUS, LIST|
|~|MoveTo(ImapMailboxInfo)&br;MoveTo(ImapMailboxInfo, bool)|メールボックスを指定したメールボックスの下位に移動します。|RENAME, SUBSCRIBE, UNSUBSCRIBE|
~
|~|{{
|~|MoveTo(string)&br;MoveTo(string, bool)|メールボックスを指定した名前に変更します。|RENAME, SUBSCRIBE, UNSUBSCRIBE|
~
RefreshAsync()
|~|Subscribe()&br;Subscribe(bool)|メールボックスを購読します。 オプションで、下位にあるすべてのメールボックスも購読するかどうか指定できます。|SUBSCRIBE, LIST/LSUB|
~
RefreshAsync(bool)
|~|Unsubscribe()&br;Unsubscribe(bool)|メールボックスを購読解除します。 オプションで、下位にあるすべてのメールボックスも購読解除するかどうか指定できます。|UNSUBSCRIBE, LIST/LSUB|
+
}}|~|~|
+
|~|{{
+
Delete()
+
Delete(bool)
+
}}|メールボックスが存在する場合、削除します。 オプションで購読解除するかどうか指定できます。|DELETE, UNSUBSCRIBE|
+
|~|{{
+
DeleteAsync()
+
DeleteAsync(bool)
+
}}|~|~|
+
|~|{{
+
Create()
+
Create(bool)
+
}}|メールボックスが存在しない場合、作成します。 オプションで購読するかどうか指定できます。|CREATE, SUBSCRIBE|
+
|~|{{
+
CreateAsync()
+
CreateAsync(bool)
+
}}|~|~|
+
|~|{{
+
MoveTo(ImapMailboxInfo)
+
MoveTo(ImapMailboxInfo, bool)
+
}}|メールボックスを指定したメールボックスの下位に移動します。|RENAME, SUBSCRIBE, UNSUBSCRIBE|
+
|~|{{
+
MoveToAsync(ImapMailboxInfo)
+
MoveToAsync(ImapMailboxInfo, bool)
+
}}|~|~|
+
|~|{{
+
MoveTo(string)
+
MoveTo(string, bool)
+
}}|メールボックスを指定した名前に変更します。|~|
+
|~|{{
+
MoveToAsync(string)
+
MoveToAsync(string, bool)
+
}}|~|~|
+
|~|{{
+
Subscribe()
+
Subscribe(bool)
+
}}|メールボックスを購読します。 オプションで、下位にあるすべてのメールボックスも購読するかどうか指定できます。|SUBSCRIBE, LIST/LSUB|
+
|~|{{
+
SubscribeAsync()
+
SubscribeAsync(bool)
+
}}|~|~|
+
|~|{{
+
Unsubscribe()
+
Unsubscribe(bool)
+
}}|メールボックスを購読解除します。 オプションで、下位にあるすべてのメールボックスも購読解除するかどうか指定できます。|UNSUBSCRIBE, LIST/LSUB|
+
|~|{{
+
UnsubscribeAsync()
+
UnsubscribeAsync(bool)
+
}}|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
:移動先のメールボックス|移動先のメールボックスをImapMailboxInfoで指定する場合、ImapMailboxInfoが異なるクライアントから取得したものだった場合はNotSupportedExceptionをスローします。 アカウントもしくはサーバをまたがるメールボックスの移動は[[ImapClient.MoveMailbox()>#operation_reference_mailbox_accrosssession]]を使用してください。
:移動先のメールボックス|移動先のメールボックスをImapMailboxInfoで指定する場合、ImapMailboxInfoが異なるクライアントから取得したものだった場合はNotSupportedExceptionをスローします。 アカウントもしくはサーバをまたがるメールボックスの移動は[[ImapClient.MoveMailbox()>#operation_reference_mailbox_accrosssession]]を使用してください。
2523,61 2378,28
 
OpenInbox(bool)
OpenInbox(bool)
 
}}|INBOXを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
}}|INBOXを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
 
|~|{{
|~|{{
+
OpenInboxAsync()
+
OpenInboxAsync(bool)
+
}}|~|~|
+
|~|{{
 
OpenMailbox(ImapMailboxInfo)
OpenMailbox(ImapMailboxInfo)
 
OpenMailbox(ImapMailboxInfo, bool)
OpenMailbox(ImapMailboxInfo, bool)
~
}}|指定したインスタンスが表すメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。&br;別のクライアントから取得したImapMailboxInfoを指定した場合は、ArgumentExceptionをスローします。|~|
}}|指定したインスタンスが表すメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。&br;別のクライアントから取得したImapMailboxInfoを指定した場合は、ArgumentExceptionをスローします。|SELECT/EXAMINE|
+
|~|{{
+
OpenMailboxAsync(ImapMailboxInfo)
+
OpenMailboxAsync(ImapMailboxInfo, bool)
+
}}|~|~|
 
|~|{{
|~|{{
 
OpenMailbox(string)
OpenMailbox(string)
 
OpenMailbox(string, bool)
OpenMailbox(string, bool)
 
OpenMailbox(string, ImapMailboxListOptions)
OpenMailbox(string, ImapMailboxListOptions)
 
OpenMailbox(string, ImapMailboxListOptions, bool)
OpenMailbox(string, ImapMailboxListOptions, bool)
~
}}|指定した名前のメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|~|
}}|指定した名前のメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
+
|~|{{
+
OpenMailboxAsync(string)
+
OpenMailboxAsync(string, bool)
+
OpenMailboxAsync(string, ImapMailboxListOptions)
+
OpenMailboxAsync(string, ImapMailboxListOptions, bool)
+
}}|~|~|
 
|~|{{
|~|{{
 
OpenMailbox(ImapSpecialMailbox)
OpenMailbox(ImapSpecialMailbox)
 
OpenMailbox(ImapSpecialMailbox, bool)
OpenMailbox(ImapSpecialMailbox, bool)
 
OpenMailbox(ImapSpecialMailbox, ImapMailboxListOptions)
OpenMailbox(ImapSpecialMailbox, ImapMailboxListOptions)
 
OpenMailbox(ImapSpecialMailbox, ImapMailboxListOptions, bool)
OpenMailbox(ImapSpecialMailbox, ImapMailboxListOptions, bool)
~
}}|ImapSpecialMailboxで指定した種類のメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|~|
}}|ImapSpecialMailboxで指定した種類のメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
+
|~|{{
+
OpenMailboxAsync(ImapSpecialMailbox)
+
OpenMailboxAsync(ImapSpecialMailbox, bool)
+
OpenMailboxAsync(ImapSpecialMailbox, ImapMailboxListOptions)
+
OpenMailboxAsync(ImapSpecialMailbox, ImapMailboxListOptions, bool)
+
}}|~|~|
 
|~|{{
|~|{{
 
OpenOrCreateMailbox(string)
OpenOrCreateMailbox(string)
 
OpenOrCreateMailbox(string, bool)
OpenOrCreateMailbox(string, bool)
 
OpenOrCreateMailbox(string, ImapMailboxListOptions)
OpenOrCreateMailbox(string, ImapMailboxListOptions)
 
OpenOrCreateMailbox(string, bool, bool, ImapMailboxListOptions)
OpenOrCreateMailbox(string, bool, bool, ImapMailboxListOptions)
 
}}|指定した名前のメールボックスを開きます。 存在しない場合は作成してから開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE, CREATE, SUBSCRIBE|
}}|指定した名前のメールボックスを開きます。 存在しない場合は作成してから開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE, CREATE, SUBSCRIBE|
~
|~|{{
|~ImapMailboxInfo|Open()&br;Open(bool)|インスタンスが表すメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
+
OpenOrCreateMailboxAsync(string)
+
OpenOrCreateMailboxAsync(string, bool)
+
OpenOrCreateMailboxAsync(string, ImapMailboxListOptions)
+
OpenOrCreateMailboxAsync(string, bool, bool, ImapMailboxListOptions)
+
}}|~|~|
+
|~ImapMailboxInfo|{{
+
Open()
+
Open(bool)
+
}}|インスタンスが表すメールボックスを開きます。 オプションで読み取り専用で開くかどうかを指定できます。|SELECT/EXAMINE|
+
|~|{{
+
OpenAsync()
+
OpenAsync(bool)
+
}}|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
:すべてのメソッド|これらのメソッドは、選択済みメールボックスを表すImapOpenedMailboxInfoクラスのインスタンスを返します。
:すべてのメソッド|これらのメソッドは、選択済みメールボックスを表すImapOpenedMailboxInfoクラスのインスタンスを返します。
2593,21 2415,10
 

        

        
 
|*選択済みメールボックスの操作に関するメソッド
|*選択済みメールボックスの操作に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapOpenedMailboxInfo|{{
|~ImapOpenedMailboxInfo|Refresh()|メールボックスの状態を更新します。 サーバからメールボックスの状態に関する通知があった場合はイベントを発生させます。|NOOP|
+
Refresh()
+
Refresh(bool)
+
}}|メールボックスの状態を更新します。 サーバからメールボックスの状態に関する通知があった場合はイベントを発生させます。 オプションでメールボックスの属性を表すフラグも再取得して更新するかどうかを指定できます。|NOOP, LIST|
+
|~|{{
+
RefreshAsync()
+
RefreshAsync(bool)
+
}}|~|~|
 
|~|Expunge()|メールボックスにある削除フラグが設定されているメッセージをすべて削除します。|EXPUNGE|
|~|Expunge()|メールボックスにある削除フラグが設定されているメッセージをすべて削除します。|EXPUNGE|
~
|~|ExpungeAsync()|~|~|
|~|Close()&br;IDisposable.Dispose()|メールボックスを閉じます。|CLOSE|
+
|~|Close()|メールボックスを閉じます。|CLOSE|
+
|~|CloseAsync()|~|~|
+
|~|IDisposable.Dispose()|~|~|
 
|~ImapClient|CloseMailbox()|選択済みのメールボックスがある場合、メールボックスを閉じます。 ない場合は何もしません。|CLOSE|
|~ImapClient|CloseMailbox()|選択済みのメールボックスがある場合、メールボックスを閉じます。 ない場合は何もしません。|CLOSE|
+
|~|CloseMailboxAsync()|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
****選択済みメールボックスの状態 [#operation_reference_selectedmailbox_status]
****選択済みメールボックスの状態 [#operation_reference_selectedmailbox_status]
2700,82 2511,24
 
****メッセージの取得と検索 [#operation_reference_message_get]
****メッセージの取得と検索 [#operation_reference_message_get]
 
以下はメールボックスにあるメッセージの取得と検索に関するメソッドです。
以下はメールボックスにあるメッセージの取得と検索に関するメソッドです。
 

        

        
~
|*メールボックス内の単一のメッセージを取得するメソッド
|*メールボックス内のメッセージの取得と検索に関するメソッド
+
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
+
|~ImapOpenedMailboxInfo|{{
+
GetMessageByUid(long)
+
GetMessageByUid(long, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つのメッセージを取得します。|FETCH|
+
|~|{{
+
GetMessageByUidAsync(long)
+
GetMessageByUidAsync(long, ImapMessageFetchAttributeOptions)
+
}}|~|~|
+
|~|{{
+
GetMessageBySequence(long)
+
GetMessageBySequence(long, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、指定した通番を持つ1つのメッセージを取得します。|~|
+
|~|{{
+
GetMessageBySequenceAsync(long)
+
GetMessageBySequenceAsync(long, ImapMessageFetchAttributeOptions)
+
}}|~|~|
+
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
+

          
+
|*メールボックス内の複数のメッセージの取得・検索に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapOpenedMailboxInfo|{{
|~ImapOpenedMailboxInfo|GetMessages()&br;GetMessages(ImapMessageFetchAttributeOptions)|メールボックスにあるすべてのメッセージを取得します。|FETCH|
~
GetMessages()
|~|GetMessages(long, params long[])&br;GetMessages(ImapMessageFetchAttributeOptions, long, params long[])|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを取得します。|FETCH|
~
GetMessages(ImapMessageFetchAttributeOptions)
|~|GetMessageByUid(long)&br;GetMessageByUid(long, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、指定したUIDを持つ1つのメッセージを取得します。|FETCH|
~
}}|メールボックスにあるすべてのメッセージを取得します。|(FETCH)|
|~|GetMessageBySequence(long)&br;GetMessageBySequence(long, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、指定した通番を持つ1つのメッセージを取得します。|FETCH|
~
|~|{{
|~|GetMessagesRecent()&br;GetMessagesRecent(ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、新着メッセージ(``\Recent``フラグが設定されているメッセージ)を取得します。|SEARCH|
~
GetMessages(long, params long[])
|~|GetMessagesUnseen()&br;GetMessagesUnseen(ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、未読メッセージ(``\Seen``フラグが設定されていないメッセージ)を取得します。|SEARCH|
~
GetMessages(ImapMessageFetchAttributeOptions, long, params long[])
|~|GetMessagesNew()&br;GetMessagesNew(ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、''新しい''メッセージ(新着あるいは未読のメッセージ)を取得します。|SEARCH|
~
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを取得します。|~|
|~|GetMessages(ImapSearchCriteria)&br;GetMessages(ImapSearchCriteria, ImapMessageFetchAttributeOptions)&br;GetMessages(ImapSearchCriteria, Encoding)&br;GetMessages(ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)|指定した検索条件にマッチするメッセージを取得します。 オプションでエンコーディングを指定できます。|SEARCH|
~
|~|{{
|~|GetMessagesGmailSearch(string)&br;GetMessagesGmailSearch(string, ImapMessageFetchAttributeOptions)|[[Gmail search syntax (Gmail詳細検索演算子):https://support.google.com/mail/answer/7190]]にマッチしたメッセージを取得します。 Gmailサーバー以外の場合(X-GM-RAWをサポートしていない場合)は、ImapIncapableExceptionをスローします。|SEARCH X-GM-RAW|
~
GetMessagesRecent()
|~|GetSortedMessages(ImapSortCriteria)&br;GetSortedMessages(ImapSortCriteria, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージを指定したソート条件でソート済みの状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがSORTコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|SORT|
~
GetMessagesRecent(ImapMessageFetchAttributeOptions)
|~|GetSortedMessages(ImapSortCriteria, ImapSearchCriteria)&br;GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, ImapMessageFetchAttributeOptions)&br;GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, Encoding)&br;GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージのみを指定したソート条件でソート済みの状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがSORTコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|SORT|
~
}}|メールボックスにあるメッセージのうち、新着メッセージ(``\Recent``フラグが設定されているメッセージ)を取得します。|(SEARCH, FETCH)|
|~|GetThreadedMessages(ImapThreadingAlgorithm)&br;GetThreadedMessages(ImapThreadingAlgorithm, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージを指定したアルゴリズムでスレッド化した状態で取得します。&br;サーバがTHREADコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|THREAD|
~
|~|{{
|~|GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria)&br;GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria, Encoding)&br;GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージのみを指定したアルゴリズムでスレッド化した状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがTHREADコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|THREAD|
~
GetMessagesUnseen()
|~ImapMessageInfoList|GetEnumerator()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、列挙します。|FETCH|
+
GetMessagesUnseen(ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、未読メッセージ(``\Seen``フラグが設定されていないメッセージ)を取得します。|~|
+
|~|{{
+
GetMessagesNew()
+
GetMessagesNew(ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、''新しい''メッセージ(新着あるいは未読のメッセージ)を取得します。|~|
+
|~|{{
+
GetMessages(ImapSearchCriteria)
+
GetMessages(ImapSearchCriteria, ImapMessageFetchAttributeOptions)
+
GetMessages(ImapSearchCriteria, Encoding)
+
GetMessages(ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)
+
}}|指定した検索条件にマッチするメッセージを取得します。 オプションでエンコーディングを指定できます。|~|
+
|~|{{
+
GetMessagesGmailSearch(string)
+
GetMessagesGmailSearch(string, ImapMessageFetchAttributeOptions)
+
}}|[[Gmail search syntax (Gmail詳細検索演算子):https://support.google.com/mail/answer/7190]]にマッチしたメッセージを取得します。 Gmailサーバー以外の場合(X-GM-RAWをサポートしていない場合)は、ImapIncapableExceptionをスローします。|(SEARCH X-GM-RAW, FETCH)|
+
|~|{{
+
GetSortedMessages(ImapSortCriteria)
+
GetSortedMessages(ImapSortCriteria, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージを指定したソート条件でソート済みの状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがSORTコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|(SORT, FETCH)|
+
|~|{{
+
GetSortedMessages(ImapSortCriteria, ImapSearchCriteria)
+
GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, ImapMessageFetchAttributeOptions)
+
GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, Encoding)
+
GetSortedMessages(ImapSortCriteria, ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージのみを指定したソート条件でソート済みの状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがSORTコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|~|
+
|~|{{
+
GetThreadedMessages(ImapThreadingAlgorithm)
+
GetThreadedMessages(ImapThreadingAlgorithm, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージを指定したアルゴリズムでスレッド化した状態で取得します。&br;サーバがTHREADコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|THREAD|
+
|~|{{
+
GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria)
+
GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria, Encoding)
+
GetThreadedMessages(ImapThreadingAlgorithm, ImapSearchCriteria, Encoding, ImapMessageFetchAttributeOptions)
+
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージのみを指定したアルゴリズムでスレッド化した状態で取得します。 オプションでエンコーディングを指定できます。&br;サーバがTHREADコマンドをサポートしていない場合は、ImapIncapableExceptionをスローします。|THREAD|
+
|~ImapMessageInfoList|GetEnumerator()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、列挙します。|(ImapMessageInfoListを取得したメソッドによる)|
 
|~|ToList()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、List<ImapMessageInfo>として返します。|~|
|~|ToList()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、List<ImapMessageInfo>として返します。|~|
+
|~|ToListAsync()|~|~|
 
|~|ToArray()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、ImapMessageInfoの配列として返します。|~|
|~|ToArray()|ImapMessageInfoListインスタンスが表すクエリに該当するImapMessageInfoを取得し、ImapMessageInfoの配列として返します。|~|
+
|~|ToArrayAsync()|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
//-これらのメソッドは、接続してから切断するまでの間、同じ通番のメッセージに対しては常に同じPopMessageInfoインスタンスを返します。
//-これらのメソッドは、接続してから切断するまでの間、同じ通番のメッセージに対しては常に同じPopMessageInfoインスタンスを返します。
3012,7 2765,7
 

        

        
 
|*メッセージ本文から特定セクションのみを取得するメソッド
|*メッセージ本文から特定セクションのみを取得するメソッド
 
|~クラス|~メソッド|~解説|h
|~クラス|~メソッド|~解説|h
~
|~ImapMessageInfo|{{
|ImapMessageInfo|{{
 
OpenRead(IImapBodyStructure, ...)
OpenRead(IImapBodyStructure, ...)
 
OpenText(IImapBodyStructure, ...)
OpenText(IImapBodyStructure, ...)
 
ReadAllBytes(IImapBodyStructure, ...)
ReadAllBytes(IImapBodyStructure, ...)
3095,14 2848,12
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
 
|~ImapMessageInfo|{{
|~ImapMessageInfo|{{
 
GetHeader()
GetHeader()
+
GetHeaderAsync()
 
およびオーバーロード
およびオーバーロード
 
}}|メッセージのヘッダ部分のみを取得し、ヘッダ名と値に分離したKeyValuePairの配列で返します。 オプションで取得するヘッダや、ヘッダの値をデコードするかどうかを指定できます。|FETCH|
}}|メッセージのヘッダ部分のみを取得し、ヘッダ名と値に分離したKeyValuePairの配列で返します。 オプションで取得するヘッダや、ヘッダの値をデコードするかどうかを指定できます。|FETCH|
 
|~|{{
|~|{{
 
GetRawHeader()
GetRawHeader()
+
GetRawHeaderAsync()
 
およびオーバーロード
およびオーバーロード
~
}}|メッセージのヘッダ部分のみを取得し、単一の文字列として返します。 オプションで取得するヘッダを指定できます。|~|
}}|メッセージのヘッダ部分のみを取得し、単一の文字列として返します。 オプションで取得するヘッダを指定できます。|FETCH|
 

        

        
 
****メッセージの操作 [#operation_reference_message_control]
****メッセージの操作 [#operation_reference_message_control]
 
以下はメールボックスにあるメッセージの移動・コピー・削除・フラグの変更等の操作に関するメソッドです。
以下はメールボックスにあるメッセージの移動・コピー・削除・フラグの変更等の操作に関するメソッドです。
3113,67 2864,31
 
|~ImapMessageInfo および ImapMessageInfoList (ImapMessageInfoBaseから継承)|CopyTo(ImapMailboxInfo)|{{
|~ImapMessageInfo および ImapMessageInfoList (ImapMessageInfoBaseから継承)|CopyTo(ImapMailboxInfo)|{{
 
1つまたは複数のメッセージを、指定したメールボックスにコピーします。
1つまたは複数のメッセージを、指定したメールボックスにコピーします。
 
}}|COPY|FETCH+APPEND|
}}|COPY|FETCH+APPEND|
~
|~|CopyToAsync(ImapMailboxInfo)|~|~|~|
|~|CopyTo(string)&br;CopyTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスにコピーします。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY|-|
+
|~|{{
+
CopyTo(string)
+
CopyTo(string, bool)
+
}}|1つまたは複数のメッセージを、指定した名前のメールボックスにコピーします。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY|-|
+
|~|{{
+
CopyToAsync(string)
+
CopyToAsync(string, bool)
+
}}|~|~|~|
 
|~|MoveTo(ImapMailboxInfo)|{{
|~|MoveTo(ImapMailboxInfo)|{{
 
1つまたは複数のメッセージを、指定したメールボックスに移動します。
1つまたは複数のメッセージを、指定したメールボックスに移動します。
 
}}|COPY+STORE/MOVE|FETCH+APPEND+STORE|
}}|COPY+STORE/MOVE|FETCH+APPEND+STORE|
~
|~|MoveToAsync(ImapMailboxInfo)|~|~|~|
|~|MoveTo(string)&br;MoveTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスに移動します。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY+STORE/MOVE|-|
+
|~|{{
+
MoveTo(string)
+
MoveTo(string, bool)
+
}}|1つまたは複数のメッセージを、指定した名前のメールボックスに移動します。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY+STORE/MOVE|-|
+
|~|{{
+
MoveToAsync(string)
+
MoveToAsync(string, bool)
+
}}|~|~|~|
 
|~ImapOpenedMailboxInfo|{{
|~ImapOpenedMailboxInfo|{{
 
CopyMessagesTo(ImapMailboxInfo)
CopyMessagesTo(ImapMailboxInfo)
 
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
 
|~|{{
|~|{{
+
CopyMessagesToAsync(ImapMailboxInfo)
+
}}|~|~|~|
+
|~|{{
 
CopyMessagesTo(ImapMailboxInfo, long, params long[])
CopyMessagesTo(ImapMailboxInfo, long, params long[])
 
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
 
|~|{{
|~|{{
+
CopyMessagesToAsync(ImapMailboxInfo, long, params long[])
+
}}|~|~|~|
+
|~|{{
 
CopyMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
CopyMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
 
CopyMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
CopyMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
 
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスにコピーします。|SEARCH+COPY|SEARCH+FETCH+APPEND|
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスにコピーします。|SEARCH+COPY|SEARCH+FETCH+APPEND|
 
|~|{{
|~|{{
+
CopyMessagesToAsync(ImapSearchCriteria, ImapMailboxInfo)
+
CopyMessagesToAsync(ImapSearchCriteria, Encoding, ImapMailboxInfo)
+
}}|~|~|~|
+
|~|{{
 
MoveMessagesTo(ImapMailboxInfo)
MoveMessagesTo(ImapMailboxInfo)
 
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
 
|~|{{
|~|{{
+
MoveMessagesToAsync(ImapMailboxInfo)
+
}}|~|~|~|
+
|~|{{
 
MoveMessagesTo(ImapMailboxInfo, long, params long[])
MoveMessagesTo(ImapMailboxInfo, long, params long[])
 
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
 
|~|{{
|~|{{
+
MoveMessagesToAsync(ImapMailboxInfo, long, params long[])
+
}}|~|~|~|
+
|~|{{
 
MoveMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
MoveMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
 
MoveMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
MoveMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
 
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスに移動します。|SEARCH+COPY+STORE / SEARCH+MOVE|SEARCH+FETCH+APPEND+STORE|
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスに移動します。|SEARCH+COPY+STORE / SEARCH+MOVE|SEARCH+FETCH+APPEND+STORE|
+
|~|{{
+
MoveMessagesToAsync(ImapSearchCriteria, ImapMailboxInfo)
+
MoveMessagesToAsync(ImapSearchCriteria, Encoding, ImapMailboxInfo)
+
}}|~|~|~|
 
|~クラス|~メソッド|~解説|~同一セッションの場合|~異なるセッションの場合|f
|~クラス|~メソッド|~解説|~同一セッションの場合|~異なるセッションの場合|f
 
|~|~|~|>|~対応するIMAPコマンド|f
|~|~|~|>|~対応するIMAPコマンド|f
 

        

        
3189,60 2904,15
 

        

        
 
|*メールボックスにあるメッセージの削除・フラグの変更等の操作に関するメソッド
|*メールボックスにあるメッセージの削除・フラグの変更等の操作に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapMessageInfo および ImapMessageInfoList (ImapMessageInfoBaseから継承)|{{
|~ImapMessageInfo および ImapMessageInfoList (ImapMessageInfoBaseから継承)|AddFlags(IImapMessageFlagSet)&br;AddFlags(ImapMessageFlag, params ImapMessageFlag[])&br;AddKeywords(string, params string[])|1つまたは複数のメッセージに対して、指定したフラグ・キーワードを追加します。|STORE|
~
AddFlags(IImapMessageFlagSet)
|~|RemoveFlags(IImapMessageFlagSet)&br;RemoveFlags(ImapMessageFlag, params ImapMessageFlag[])&br;RemoveKeywords(string, params string[])|1つまたは複数のメッセージから、指定したフラグ・キーワードを削除します。|STORE|
~
AddFlags(ImapMessageFlag, params ImapMessageFlag[])
|~|SetFlags(IImapMessageFlagSet)&br;SetFlags(ImapMessageFlag, params ImapMessageFlag[])&br;SetKeywords(string, params string[])|1つまたは複数のメッセージに対して、既に設定されているフラグ・キーワードを置き換えて指定した値に設定します。|STORE|
~
AddKeywords(string, params string[])
|~|Store(ImapStoreDataItem)|1つまたは複数のメッセージに対して、指定したフラグ・キーワードの追加/削除/設定を行います。|STORE|
~
}}|1つまたは複数のメッセージに対して、指定したフラグ・キーワードを追加します。|STORE|
|~|MarkAsDeleted()|1つまたは複数のメッセージに削除フラグ(``\Deleted``)を設定します。|STORE|
~
|~|{{
|~|MarkAsSeen()|1つまたは複数のメッセージを既読フラグ(``\Seen``)を設定します。|STORE|
+
AddFlagsAsync(IImapMessageFlagSet)
+
AddFlagsAsync(ImapMessageFlag, params ImapMessageFlag[])
+
AddKeywordsAsync(string, params string[])
+
}}|~|~|
+
|~|{{
+
RemoveFlags(IImapMessageFlagSet)
+
RemoveFlags(ImapMessageFlag, params ImapMessageFlag[])
+
RemoveKeywords(string, params string[])
+
}}|1つまたは複数のメッセージから、指定したフラグ・キーワードを削除します。|~|
+
|~|{{
+
RemoveFlagsAsync(IImapMessageFlagSet)
+
RemoveFlagsAsync(ImapMessageFlag, params ImapMessageFlag[])
+
RemoveKeywordsAsync(string, params string[])}}
+
}}|~|~|
+
|~|{{
+
SetFlags(IImapMessageFlagSet)
+
SetFlags(ImapMessageFlag, params ImapMessageFlag[])
+
SetKeywords(string, params string[])
+
}}|1つまたは複数のメッセージに対して、既に設定されているフラグ・キーワードを置き換えて指定した値に設定します。|~|
+
|~|{{
+
SetFlagsAsync(IImapMessageFlagSet)
+
SetFlagsAsync(ImapMessageFlag, params ImapMessageFlag[])
+
SetKeywordsAsync(string, params string[])
+
}}|~|~|
+
|~|{{
+
Store(ImapStoreDataItem)
+
}}|1つまたは複数のメッセージに対して、指定したフラグ・キーワードの追加/削除/設定を行います。|~|
+
|~|{{
+
StoreAsync(ImapStoreDataItem)
+
}}|~|~|
+
|~|MarkAsDeleted()|1つまたは複数のメッセージに削除フラグ(``\Deleted``)を設定します。|~|
+
|~|MarkAsDeletedAsync()|~|~|
+
|~|MarkAsSeen()|1つまたは複数のメッセージを既読フラグ(``\Seen``)を設定します。|~|
+
|~|MarkAsSeenAsync()|~|~|
 
|~|Delete()|1つまたは複数のメッセージを完全に削除します。&br;サーバがUID EXPUNGEをサポートしていない場合、''既に削除フラグが設定されている他のメッセージも同時に削除されます''。|STORE+EXPUNGE/UID EXPUNGE|
|~|Delete()|1つまたは複数のメッセージを完全に削除します。&br;サーバがUID EXPUNGEをサポートしていない場合、''既に削除フラグが設定されている他のメッセージも同時に削除されます''。|STORE+EXPUNGE/UID EXPUNGE|
+
|~|DeleteAsync()|~|~|
 
|~ImapMessageInfo|Refresh()|メッセージの動的属性を更新します。|FETCH|
|~ImapMessageInfo|Refresh()|メッセージの動的属性を更新します。|FETCH|
~
|~|RefreshAsync()|~|~|
|~|ToggleFlags(IImapMessageFlagSet)&br;ToggleFlags(ImapMessageFlag, params ImapMessageFlag[])&br;ToggleKeywords(string, params string[])|メッセージに設定されているフラグ・キーワードを反転します。&br;例として、メッセージに削除フラグが設定されている場合はフラグを削除し、設定されていない場合は追加します。|STORE|
+
|~|{{
+
ToggleFlags(IImapMessageFlagSet)
+
ToggleFlags(ImapMessageFlag, params ImapMessageFlag[])
+
ToggleKeywords(string, params string[])
+
}}|メッセージに設定されているフラグ・キーワードを反転します。&br;例として、メッセージに削除フラグが設定されている場合はフラグを削除し、設定されていない場合は追加します。|STORE|
+
|~|{{
+
ToggleFlagsAsync(IImapMessageFlagSet)
+
ToggleFlagsAsync(ImapMessageFlag, params ImapMessageFlag[])
+
ToggleKeywordsAsync(string, params string[])
+
}}|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
:ImapMessageFlag|以下のフラグを指定することができます。 これ以外のImapMessageFlagを指定した場合は無視されます。
:ImapMessageFlag|以下のフラグを指定することができます。 これ以外のImapMessageFlagを指定した場合は無視されます。
3260,46 2930,11
 

        

        
 
|*メールボックスにメッセージを追加するためのメソッド
|*メールボックスにメッセージを追加するためのメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
~
|~ImapMailboxInfo|{{
|~ImapMailboxInfo|AppendMessage(Stream)&br;AppendMessage(Stream, DateTimeOffset)&br;AppendMessage(Stream, IImapMessageFlagSet)&br;AppendMessage(Stream, DateTimeOffset, IImapMessageFlagSet)|指定したStreamの内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|APPEND|
~
AppendMessage(Stream)
|~|AppendMessage(IImapAppendMessage message)|指定したIImapAppendMessageで表されるメッセージをメールボックスにアップロードします。|APPEND|
+
AppendMessage(Stream, DateTimeOffset)
+
AppendMessage(Stream, IImapMessageFlagSet)
+
AppendMessage(Stream, DateTimeOffset, IImapMessageFlagSet)
+
}}|指定したStreamの内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|APPEND|
+
|~|{{
+
AppendMessageAsync(Stream)
+
AppendMessageAsync(Stream, DateTimeOffset)
+
AppendMessageAsync(Stream, IImapMessageFlagSet)
+
AppendMessageAsync(Stream, DateTimeOffset, IImapMessageFlagSet)
+
}}|~|~|
+
|~|AppendMessage(IImapAppendMessage message)|指定したIImapAppendMessageで表されるメッセージをメールボックスにアップロードします。|~|
+
|~|AppendMessageAsync(IImapAppendMessage message)|~|~|
 
|~|AppendMessages(IEnumerable<IImapAppendMessage>)|指定したIImapAppendMessageで表される複数のメッセージをメールボックスにアップロードします。|APPENDもしくはMULTIAPPEND|
|~|AppendMessages(IEnumerable<IImapAppendMessage>)|指定したIImapAppendMessageで表される複数のメッセージをメールボックスにアップロードします。|APPENDもしくはMULTIAPPEND|
~
|~|AppendMessagesAsync(IEnumerable<IImapAppendMessage>)|~|~|
|~|AppendMessage(Action<Stream>)&br;AppendMessage(DateTimeOffset, Action<Stream>)&br;AppendMessage(IImapMessageFlagSet, Action<Stream>)&br;AppendMessage(DateTimeOffset, IImapMessageFlagSet flags, Action<Stream>)|メッセージを書き込むためのStreamを取得し、書き込んだ内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|APPEND|
~
|~|{{
|~|AppendMessage(long, Action<Stream>)&br;AppendMessage(long, DateTimeOffset, Action<Stream>)&br;AppendMessage(long, IImapMessageFlagSet, Action<Stream>)&br;AppendMessage(long, DateTimeOffset, IImapMessageFlagSet, Action<Stream>)|指定したサイズのメッセージを書き込むためのStreamを取得し、書き込んだ内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|APPEND|
+
AppendMessage(Action<Stream>)
+
AppendMessage(DateTimeOffset, Action<Stream>)
+
AppendMessage(IImapMessageFlagSet, Action<Stream>)
+
AppendMessage(DateTimeOffset, IImapMessageFlagSet flags, Action<Stream>)
+
}}|メッセージを書き込むためのStreamを取得し、書き込んだ内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|APPEND|
+
|~|{{
+
AppendMessageAsync(Action<Stream>)
+
AppendMessageAsync(DateTimeOffset, Action<Stream>)
+
AppendMessageAsync(IImapMessageFlagSet, Action<Stream>)
+
AppendMessageAsync(DateTimeOffset, IImapMessageFlagSet flags, Action<Stream>)
+
}}|~|~|
+
|~|{{
+
AppendMessage(long, Action<Stream>)
+
AppendMessage(long, DateTimeOffset, Action<Stream>)
+
AppendMessage(long, IImapMessageFlagSet, Action<Stream>)
+
AppendMessage(long, DateTimeOffset, IImapMessageFlagSet, Action<Stream>)
+
}}|指定したサイズのメッセージを書き込むためのStreamを取得し、書き込んだ内容をメールボックスにアップロードします。 オプションでメッセージに設定するINTERNALDATE, フラグ・キーワードを指定できます。|~|
+
|~|{{
+
AppendMessageAsync(long, Action<Stream>)
+
AppendMessageAsync(long, DateTimeOffset, Action<Stream>)
+
AppendMessageAsync(long, IImapMessageFlagSet, Action<Stream>)
+
AppendMessageAsync(long, DateTimeOffset, IImapMessageFlagSet, Action<Stream>)
+
}}|~|~|
 
|~|AppendMessage(ImapMessageInfo)|{{
|~|AppendMessage(ImapMessageInfo)|{{
 
指定したImapMessageInfoの内容をメールボックスに追加します。
指定したImapMessageInfoの内容をメールボックスに追加します。
 

        

        
3309,7 2944,6
 
COPY (同一セッションの場合)
COPY (同一セッションの場合)
 
APPEND (異なるセッションの場合)
APPEND (異なるセッションの場合)
 
}}|
}}|
+
|~|AppendMessageAsync(ImapMessageInfo)|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
:追加先のメールボックス|選択できないメールボックス(IsUnselectableがtrue)の場合や、既に削除されているメールボックス(Existがfalse)の場合は、ImapProtocolViolationExceptionをスローします。
:追加先のメールボックス|選択できないメールボックス(IsUnselectableがtrue)の場合や、既に削除されているメールボックス(Existがfalse)の場合は、ImapProtocolViolationExceptionをスローします。
3366,11 3000,8
 
|*クォータの取得に関するメソッド
|*クォータの取得に関するメソッド
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|h
 
|~ImapClient|GetQuota(string)|指定した名前のクォータルートの状態を取得します。 サーバがQUOTAをサポートしていない場合はnullを返します。|GETQUOTA|
|~ImapClient|GetQuota(string)|指定した名前のクォータルートの状態を取得します。 サーバがQUOTAをサポートしていない場合はnullを返します。|GETQUOTA|
+
|~|GetQuotaAsync(string)|~|~|
 
|~|GetQuotaUsage(string, string)|指定した名前のクォータルートのうち、指定したリソースの使用率を0.0から1.0までのdouble値で返します。 サーバがQUOTAをサポートしていない場合、上限が0の場合は0.0を返します。|GETQUOTA|
|~|GetQuotaUsage(string, string)|指定した名前のクォータルートのうち、指定したリソースの使用率を0.0から1.0までのdouble値で返します。 サーバがQUOTAをサポートしていない場合、上限が0の場合は0.0を返します。|GETQUOTA|
+
|~|GetQuotaUsageAsync(string, string)|~|~|
 
|~ImapMailboxInfo|GetQuota()|メールボックスに割り当てられているクォータの一覧をIEnumerable<ImapQuota>で返します。 サーバがQUOTAをサポートしていない場合は、空のIEnumerable<ImapQuota>を返します。|GETQUOTAROOT|
|~ImapMailboxInfo|GetQuota()|メールボックスに割り当てられているクォータの一覧をIEnumerable<ImapQuota>で返します。 サーバがQUOTAをサポートしていない場合は、空のIEnumerable<ImapQuota>を返します。|GETQUOTAROOT|
+
|~|GetQuotaAsync()|~|~|
 
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
|~クラス|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
***拡張機能を使用しているメソッド・プロパティ [#operation_reference_extension_specs]
***拡張機能を使用しているメソッド・プロパティ [#operation_reference_extension_specs]

works/libs/Smdn.Net.Imap4.Client/releases/index.wiki.txt

current previous
7,19 7,6
 
以下のバージョンはすべて[[MIT X11ライセンス>http://sourceforge.jp/projects/opensource/wiki/licenses/MIT_license]]でのリリースとなります。
以下のバージョンはすべて[[MIT X11ライセンス>http://sourceforge.jp/projects/opensource/wiki/licenses/MIT_license]]でのリリースとなります。
 

        

        
 
|~バージョン|>|~パッケージ|h
|~バージョン|>|~パッケージ|h
+
|~[[1.10 (2014-07-19)>#changes_v1.10]]|~ソースコード|{{
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10.tar.bz2}
+
}}|
+
|~|~DLL|{{
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx4.5.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx4.0.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx3.5.zip,.NET 3.5}
+
}}|
+
|~|~DLL&br;([[単一アセンブリ版>#releases_combined]])|{{
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx4.5-combined.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx4.0-combined.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.10-netfx3.5-combined.zip,.NET 3.5}
+
}}|
 
|~[[1.09 (2014-06-21)>#changes_v1.09]]|~ソースコード|{{
|~[[1.09 (2014-06-21)>#changes_v1.09]]|~ソースコード|{{
 
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.09.tar.bz2}
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-1.09.tar.bz2}
 
}}|
}}|
336,18 323,6
 
コンパイラにMono mcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
コンパイラにMono mcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
 

        

        
 
*変更履歴 [#changes]
*変更履歴 [#changes]
+
**1.10 (2014-07-19) [#changes_v1.10]
+
主に非同期操作用のメソッドの追加。
+

          
+
-機能追加
+
--ImapClient
+
---(.NET 4.0以上のみ) ImapClient, ImapMailboxInfo, ImapMessageInfo, ImapMassageInfoList, ImapOpenedMailboxInfoの各クラスに非同期操作用のメソッドを追加
+
-修正・改善
+
--取得しようとするメッセージのサイズが10240の倍数の場合に不必要なコマンド送信が行われる不具合を修正
+
--以前のバージョンでobsoleteにしたメンバーを削除
+
--ImapClient
+
---ImapMailboxInfo.GetQuota()の戻り値について、遅延実行を行うIEnumerator<ImapQuota>を返す動作を変更し、読み取り専用のIList<ImapQuota>(.NET 4.5ではIReadOnlyList<ImapQuota>)を返すようにした
+

          
 
**1.09 (2014-06-21) [#changes_v1.09]
**1.09 (2014-06-21) [#changes_v1.09]
 
主に非同期操作用のメソッドを追加するための下準備。
主に非同期操作用のメソッドを追加するための下準備。
 

        

        

works/tools/junk/SimpleMailer/index.wiki.txt

current previous
19,14 19,6
 
#googleadunit
#googleadunit
 
-開発版
-開発版
 
--[[http://svn.smdn.jp/anonsvn/tools/SimpleMailer/trunk/]]よりチェックアウトできます
--[[http://svn.smdn.jp/anonsvn/tools/SimpleMailer/trunk/]]よりチェックアウトできます
+
-1.1x
+
--${smdncms:distfilelink,SimpleMailer-1.10.tar.bz2}
+
---下記ライブラリのソースを同梱しています
+
----[[works/libs/Smdn.Net.Imap4.Client]] 1.10
+
----[[works/libs/Smdn.Net.Pop3.Client]] 1.24
+
----[[works/libs/Smdn.Security.Authentication.Sasl]] 1.00
+
----[[works/libs/Smdn.Formats.Mime]] 0.37
+
----[[works/libs/Smdn.Formats.Ini]] 0.22
 
-1.0x
-1.0x
 
--${smdncms:distfilelink,SimpleMailer-1.09.tar.bz2}
--${smdncms:distfilelink,SimpleMailer-1.09.tar.bz2}
 
---下記ライブラリのソースを同梱しています
---下記ライブラリのソースを同梱しています
144,16 136,6
 
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*変更履歴
*変更履歴
+

          
+
**1.10 (2014-07-19)
+
-機能追加
+
--メッセージ本文をプレビューする際のフォントを設定ファイルで指定できるようにした
+
--階層内で存在していない仮想的なメールボックスを作成させることができるようにした
+
--サーバー証明書に問題がある場合の動作を変更し、「受け入れる」「一度だけ受け入れる」「中断する」の3つのオプションから動作を選択できるようにした
+
-修正・改善
+
--いくつかの処理を非同期化
+
--階層内の上位のメールボックスが存在しない場合・購読していない場合に最下位のメールボックスを正しく表示できない不具合を修正し、仮想的なメールボックスを表示するようにした
+

          
 
**1.09 (2014-06-21)
**1.09 (2014-06-21)
 
-修正・改善
-修正・改善
 
--ライブラリのインターフェイス変更にあわせて実装を修正
--ライブラリのインターフェイス変更にあわせて実装を修正