2010-02-22T04:47:43の更新内容

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

current previous
9,21 9,13
 
-[[works/libs/Smdn.Formats.Ini]]
-[[works/libs/Smdn.Formats.Ini]]
 

        

        
 
*スクリーンショット
*スクリーンショット
~
//&ref(tunderebird.png);
&ref(tunderebird.png); &ref(tunderebird-win.png);
+
&ref(tunderebird-win.png);
 

        

        
 
*ダウンロード
*ダウンロード
 
#googleadunit
#googleadunit
 
-開発版
-開発版
 
--[[anonsvn]]よりチェックアウトできます
--[[anonsvn]]よりチェックアウトできます
 
-0.2x
-0.2x
+
--${smdncms:distfilelink,TundereBird-0.26.tar.bz2}
+
---下記ライブラリのソースを同梱しています
+
----[[works/libs/Smdn.Net.Imap4]] 0.26
+
----[[works/libs/Smdn.Net.Pop3]] 0.26
+
----[[works/libs/Smdn.Security.Authentication.Sasl]] 0.25
+
----[[works/libs/Smdn.Formats.Mime]] 0.17
+
----[[works/libs/Smdn.Formats.Ini]] 0.16
 
--${smdncms:distfilelink,TundereBird-0.25.tar.bz2}
--${smdncms:distfilelink,TundereBird-0.25.tar.bz2}
 
---下記ライブラリのソースを同梱しています
---下記ライブラリのソースを同梱しています
 
----[[works/libs/Smdn.Net.Imap4]] 0.25
----[[works/libs/Smdn.Net.Imap4]] 0.25
96,15 88,6
 
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*変更履歴
*変更履歴
+
**0.26
+
-機能追加
+
--メッセージのContent-TypeとUnique IDを表示するカラムを追加した
+
--メッセージの取得にかかった時間を出力するようにした
+
--IMAP
+
---メッセージのセクションごとに本文の取得と保存ができるようにした
+
-修正・改善
+
--Content-Typeの比較処理をcase insensitiveにした
+

          
 
**0.25
**0.25
 
-修正・改善
-修正・改善
 
--IMAP
--IMAP

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

current previous
4,7 4,6
 

        

        
 
*リリース一覧
*リリース一覧
 
-0.2x
-0.2x
+
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.26.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.25.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.25.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.24.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.24.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.23.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.23.tar.bz2}
17,36 16,6
 
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
 

        

        
 
*変更履歴
*変更履歴
+
**0.26
+
主にBODYSTRUCTURE関連の機能強化、下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
+

          
+
-機能追加
+
--BODYSTRUCTUREまわりの実装とインターフェイスを整理した
+
--BODYSTRUCTUREを含むレスポンスからすべてのextension dataを取得できるようにした
+
--すべてのIImapBodyStructureからSECTIONを取得できるようにした
+
--FETCHでUIDも取得した場合に限り、すべてのIImapBodyStructureからSECTIONを含むURLを取得できるようにした
+
--ImapMailboxに上位のメールボックス名、階層末尾の名前を取得するプロパティを追加
+
--WebClients名前空間
+
---ImapWebRequest.FetchDataItemを追加
+
-修正・改善
+
--ストリームのアップグレードに失敗した場合、ImapUpgradeConnectionExceptionをスローするようにした
+
--SSL接続/STARTTLSに失敗した場合、ImapSecureConnectionExceptionをスローするようにした
+
--IDコマンドで送信するIDをDictionary<string, string>ではなくIDictionary<string, string>で引き受けるように変更
+
--ログ
+
---POP/IMAPのプロトコルログを分けて収集できるように修正
+
---プロトコルログのTraceSourceのnameを'IMAP'に変更
+
--パフォーマンス関連
+
---下位ライブラリの実装の最適化、バッファアロケーションと動作速度を改善
+
--WebClients名前空間
+
---すべて小文字でなければimapsスキームとみなされない不具合を修正
+
---LOGIN-REFERRAL, MAILBOX-REFERRALのサポートを削除
+

          
+
0.25と0.26のパフォーマンスの比較。
+
|~テストケース|>|~テスト環境|
+
|~|Ubuntu 9.10 + Mono(r151732)|Windows Vista + .NET Framework 3.5|
+
|4kBのメッセージを1500回ダウンロード&br;3回試行|[1]04.50sec -> 04.47sec&br;[2]04.38sec -> 04.38sec&br;[3]04.58src -> 03.90sec|[1]05.03sec -> 04.89sec&br;[2]04.77sec -> 04.62sec&br;[3]04.98src -> 04.70sec|
+
|17MBのメッセージを10回ダウンロード&br;3回試行|[1]34.95sec -> 33.68sec&br;[2]33.87sec -> 34.79sec&br;[3]33.78src -> 34.62sec|[1]41.65sec -> 38.39sec&br;[2]39.92sec -> 39.02sec&br;[3]38.61src -> 38.14sec|
+

          
 
**0.25
**0.25
 
主に未サポートだった拡張の実装、アプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
主に未サポートだった拡張の実装、アプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
 

        

        
83,6 52,7
 
|4kBのメッセージを1500回ダウンロード&br;2回試行|[1]06.05sec -> 03.80sec&br;[2]06.40sec -> 04.46sec|[1]03.94sec -> 03.68sec&br;[2]04.04sec -> 03.57sec|
|4kBのメッセージを1500回ダウンロード&br;2回試行|[1]06.05sec -> 03.80sec&br;[2]06.40sec -> 04.46sec|[1]03.94sec -> 03.68sec&br;[2]04.04sec -> 03.57sec|
 
|17MBのメッセージを10回ダウンロード&br;2回試行|[1]45.00sec -> 31.95sec&br;[2]46.43sec -> 32.78sec|[1]37.09sec -> 32.54sec&br;[2]36.99sec -> 32.63sec|
|17MBのメッセージを10回ダウンロード&br;2回試行|[1]45.00sec -> 31.95sec&br;[2]46.43sec -> 32.78sec|[1]37.09sec -> 32.54sec&br;[2]36.99sec -> 32.63sec|
 

        

        
-

          
 
**0.24
**0.24
 
主にIMAP URL関連の修正と、WebClients名前空間のクラスでの非ASCII文字を含む検索とpartial fetchのサポート。
主にIMAP URL関連の修正と、WebClients名前空間のクラスでの非ASCII文字を含む検索とpartial fetchのサポート。
 

        

        

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

current previous
1,6 1,6
 
${smdncms:title,ドキュメント・サンプル}
${smdncms:title,ドキュメント・サンプル}
 
${smdncms:keywords,}
${smdncms:keywords,}
~
[[works/libs/Smdn.Net.Imap4]]のドキュメントとサンプルです。 ここに記載されているものはversion 0.26時点のもので、記載不備などがあるかもしれません。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
[[works/libs/Smdn.Net.Imap4]]のドキュメントとサンプルです。 ここに記載されているものはversion 0.25時点のもので、記載不備などがあるかもしれません。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*使用例
*使用例
 
個々のサンプルの詳細については、後述するSmdn.Net.Imap4.WebClients名前空間の説明を参照してください。
個々のサンプルの詳細については、後述するSmdn.Net.Imap4.WebClients名前空間の説明を参照してください。
189,7 189,7
 
リクエストURLがメールボックスを表す場合(imap://imap.example.net/mailboxの形式)のリクエストとレスポンスの動作は次のとおりです。
リクエストURLがメールボックスを表す場合(imap://imap.example.net/mailboxの形式)のリクエストとレスポンスの動作は次のとおりです。
 

        

        
 
|Methodプロパティ|リクエスト|解説|レスポンス|h
|Methodプロパティ|リクエスト|解説|レスポンス|h
~
|ImapWebRequestMethods.Fetch, "FETCH"&br;(デフォルト)|FETCHコマンドを送信してメールボックスにあるメッセージの一覧を取得します。|取得するのはメッセージの属性のみです。 メッセージ本文は取得しません。 取得するメッセージ属性は、ImapWebRequest.FetchDataItemプロパティで指定します。|取得したメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
|ImapWebRequestMethods.Fetch, "FETCH"&br;(デフォルト)|FETCHコマンドを送信してメールボックスにあるメッセージの一覧を取得します。|取得するのはメッセージの属性のみ(ALLマクロで取得されるフラグ、サイズ、internal date、エンベロープ)です。 メッセージ本文は取得しません。|取得したメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
 
|ImapWebRequestMethods.Append, "APPEND"|APPENDコマンドを送信してメールボックスにメッセージをアップロードします。|アップロードするメッセージはWebRequest.GetRequestStreamメソッドが返すStreamに書き込みます。 現在の実装では、リクエスト開始時にContentLengthの値が指定されているか、GetRequestStreamメソッドが返すStreamを閉じるまでアップロードは保留されます。 メッセージはMIME形式であるべきですが、ライブラリ側ではアップロードする内容をチェックしません。|サーバがアップロードしたメッセージのUIDを返す場合は、アップロードしたメッセージのURLがWebResponse.ResponseUriに設定されます。|
|ImapWebRequestMethods.Append, "APPEND"|APPENDコマンドを送信してメールボックスにメッセージをアップロードします。|アップロードするメッセージはWebRequest.GetRequestStreamメソッドが返すStreamに書き込みます。 現在の実装では、リクエスト開始時にContentLengthの値が指定されているか、GetRequestStreamメソッドが返すStreamを閉じるまでアップロードは保留されます。 メッセージはMIME形式であるべきですが、ライブラリ側ではアップロードする内容をチェックしません。|サーバがアップロードしたメッセージのUIDを返す場合は、アップロードしたメッセージのURLがWebResponse.ResponseUriに設定されます。|
 
|ImapWebRequestMethods.Expunge, "EXPUNGE"|EXPUNGEコマンドを送信してメールボックスから\Deletedフラグの付いたメッセージを削除します。|-|-|
|ImapWebRequestMethods.Expunge, "EXPUNGE"|EXPUNGEコマンドを送信してメールボックスから\Deletedフラグの付いたメッセージを削除します。|-|-|
 
|ImapWebRequestMethods.Create, "CREATE"|CREATEコマンドを送信してURLで指定された名前でメールボックスを作成します。|ImapWebRequest.Subscriptionプロパティがtrueの場合、作成したメールボックスに対して自動的にSUBSCRIBEコマンドを送信します。|作成したメールボックスは、ImapWebResponse.Mailboxesプロパティに設定されます。 また、作成したメールボックスのURLがWebResponse.ResponseUriに設定されます。|
|ImapWebRequestMethods.Create, "CREATE"|CREATEコマンドを送信してURLで指定された名前でメールボックスを作成します。|ImapWebRequest.Subscriptionプロパティがtrueの場合、作成したメールボックスに対して自動的にSUBSCRIBEコマンドを送信します。|作成したメールボックスは、ImapWebResponse.Mailboxesプロパティに設定されます。 また、作成したメールボックスのURLがWebResponse.ResponseUriに設定されます。|
207,19 207,19
 
リクエストURLがメールボックスに対する検索クエリを表す場合(imap://imap.example.net/mailbox?...の形式)のリクエストとレスポンスの動作は次のとおりです。
リクエストURLがメールボックスに対する検索クエリを表す場合(imap://imap.example.net/mailbox?...の形式)のリクエストとレスポンスの動作は次のとおりです。
 

        

        
 
|Methodプロパティ|リクエスト|解説|レスポンス|h
|Methodプロパティ|リクエスト|解説|レスポンス|h
~
|ImapWebRequestMethods.Search, "SEARCH"&br;(デフォルト)|SEARCHコマンドを送信して検索クエリに該当するメッセージの一覧を取得します。|取得するのはメッセージの属性のみです。 メッセージ本文は取得しません。 取得するメッセージ属性は、ImapWebRequest.FetchDataItemプロパティで指定します。|取得したメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
|ImapWebRequestMethods.Search, "SEARCH"&br;(デフォルト)|SEARCHコマンドを送信して検索クエリに該当するメッセージの一覧を取得します。|取得するのはメッセージの属性のみ(ALLマクロで取得されるフラグ、サイズ、internal date、エンベロープ)です。 メッセージ本文は取得しません。|取得したメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
 
|ImapWebRequestMethods.Copy, "COPY"|COPYコマンドを送信して検索クエリに該当するメッセージを別のメールボックスにコピーします。|コピー先のメールボックスはImapWebRequest.DestinationUriプロパティで指定します。|サーバがCOPYUIDレスポンスコードを返した場合は、コピーしたメッセージのURLがWebResponse.ResponseUriに設定されます。 また、コピー先のメールボックスを自動的に作成した場合、作成したメールボックスはImapWebResponse.Mailboxesプロパティに設定されます。|
|ImapWebRequestMethods.Copy, "COPY"|COPYコマンドを送信して検索クエリに該当するメッセージを別のメールボックスにコピーします。|コピー先のメールボックスはImapWebRequest.DestinationUriプロパティで指定します。|サーバがCOPYUIDレスポンスコードを返した場合は、コピーしたメッセージのURLがWebResponse.ResponseUriに設定されます。 また、コピー先のメールボックスを自動的に作成した場合、作成したメールボックスはImapWebResponse.Mailboxesプロパティに設定されます。|
 
|ImapWebRequestMethods.Expunge, "EXPUNGE"|STOREコマンドを送信して検索クエリに該当するメッセージに\Deletedフラグを追加した後、EXPUNGEコマンドを送信してメッセージを削除します。|サーバが&urn2url(urn:ietf:rfc:4315,#2.1){UID EXPUNGE};に対応していない場合、検索クエリに該当したメッセージだけでなく''既に\Deletedフラグが設定されている他のメッセージも同時に削除されます''。|-|
|ImapWebRequestMethods.Expunge, "EXPUNGE"|STOREコマンドを送信して検索クエリに該当するメッセージに\Deletedフラグを追加した後、EXPUNGEコマンドを送信してメッセージを削除します。|サーバが&urn2url(urn:ietf:rfc:4315,#2.1){UID EXPUNGE};に対応していない場合、検索クエリに該当したメッセージだけでなく''既に\Deletedフラグが設定されている他のメッセージも同時に削除されます''。|-|
 
|ImapWebRequestMethods.Store, "STORE"|STOREコマンドを送信して検索クエリに該当するメッセージにフラグを追加・削除・設定します。|追加・削除・設定するフラグはImapWebRequest.StoreDataItemプロパティで指定します。|-|
|ImapWebRequestMethods.Store, "STORE"|STOREコマンドを送信して検索クエリに該当するメッセージにフラグを追加・削除・設定します。|追加・削除・設定するフラグはImapWebRequest.StoreDataItemプロパティで指定します。|-|
~
|ImapWebRequestMethods.Sort, "SORT"|SORTコマンドを送信して検索クエリに該当するメッセージの一覧をソート済みの形式で取得します。|ソート方法はImapWebRequest.SortCriteriaプロパティで指定します。&br;サーバがSORTコマンドをサポートするかどうかはチェックせずにリクエストを実行します。&br;SEARCH同様、取得するのはメッセージの属性のみです。 取得するメッセージ属性は、ImapWebRequest.FetchDataItemプロパティで指定します。|取得したソート済みメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
|ImapWebRequestMethods.Sort, "SORT"|SORTコマンドを送信して検索クエリに該当するメッセージの一覧をソート済みの形式で取得します。|ソート方法はImapWebRequest.SortCriteriaプロパティで指定します。&br;サーバがSORTコマンドをサポートするかどうかはチェックせずにリクエストを実行します。|取得したソート済みメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
~
|ImapWebRequestMethods.Thread, "THREAD"|THREADコマンドを送信して検索クエリに該当するメッセージの一覧をスレッド形式で取得します。|スレッド形式のアルゴリズムはImapWebRequest.ThreadingAlgorithmプロパティで指定します。&br;サーバがTHREADコマンドをサポートするかどうかはチェックせずにリクエストを実行します。&br;SEARCH同様、取得するのはメッセージの属性のみです。 取得するメッセージ属性は、ImapWebRequest.FetchDataItemプロパティで指定します。|取得したスレッド形式の一覧は、ImapWebResponse.ThreadTreeプロパティに設定されます。 また、個々のメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
|ImapWebRequestMethods.Thread, "THREAD"|THREADコマンドを送信して検索クエリに該当するメッセージの一覧をスレッド形式で取得します。|スレッド形式のアルゴリズムはImapWebRequest.ThreadingAlgorithmプロパティで指定します。&br;サーバがTHREADコマンドをサポートするかどうかはチェックせずにリクエストを実行します。|取得したスレッド形式の一覧は、ImapWebResponse.ThreadTreeプロパティに設定されます。 また、個々のメッセージの一覧は、ImapWebResponse.Messagesプロパティに設定されます。|
 
|Methodプロパティ|リクエスト|解説|レスポンス|f
|Methodプロパティ|リクエスト|解説|レスポンス|f
 

        

        
 
***メールボックス内の特定のメッセージに対するリクエスト
***メールボックス内の特定のメッセージに対するリクエスト
 
リクエストURLが特定のメッセージを表す場合(imap://imap.example.net/mailbox/;UID=1の形式)のリクエストとレスポンスの動作は次のとおりです。
リクエストURLが特定のメッセージを表す場合(imap://imap.example.net/mailbox/;UID=1の形式)のリクエストとレスポンスの動作は次のとおりです。
 

        

        
 
|Methodプロパティ|リクエスト|解説|レスポンス|h
|Methodプロパティ|リクエスト|解説|レスポンス|h
~
|ImapWebRequestMethods.Fetch, "FETCH"&br;(デフォルト)|FETCHコマンドを送信してメッセージの本文を取得します。|取得の際にBODY[]とBODY.PEEK[]のどちらを使用するかはImapWebRequest.FetchPeekプロパティで指定します。&br;URLにSECTION/PARTIALのいずれも指定していない場合は、メッセージの本文だけでなく属性も取得します。 取得するメッセージ属性は、ImapWebRequest.FetchDataItemプロパティで指定します。|メッセージ本文はWebResponse.GetResponseStreamメソッドが返すStreamから読み込めます。 URLでSECTION/PARTIALを指定している場合は、メッセージ本文のうち、該当する部分のみ取得されます。&br;URLにSECTION/PARTIALのいずれも指定していない場合のみ、取得するメッセージのサイズがWebResponse.ContentLength、Content-TypeがWebResponse.ContentTypeプロパティに設定されます。&br;UID/SECTION/PARTIALに該当するメッセージがない場合、WebExceptionStatus.SuccessのWebExceptionをスローします。|
|ImapWebRequestMethods.Fetch, "FETCH"&br;(デフォルト)|FETCHコマンドを送信してメッセージの本文を取得します。|取得の際にBODY[]とBODY.PEEK[]のどちらを使用するかはImapWebRequest.FetchPeekプロパティで指定します。&br;該当するUIDのメッセージがない場合、WebExceptionStatus.SuccessのWebExceptionをスローします。|メッセージ本文はWebResponse.GetResponseStreamメソッドが返すStreamから読み込めます。 取得するメッセージのサイズはWebResponse.ContentLength、Content-TypeはWebResponse.ContentTypeプロパティに設定されます。|
 
|ImapWebRequestMethods.Copy, "COPY"|COPYコマンドを送信してメッセージを別のメールボックスにコピーします。|コピー先のメールボックスはImapWebRequest.DestinationUriプロパティで指定します。|サーバがCOPYUIDレスポンスコードを返した場合は、コピーしたメッセージのURLがWebResponse.ResponseUriに設定されます。 また、コピー先のメールボックスを自動的に作成した場合、作成したメールボックスはImapWebResponse.Mailboxesプロパティに設定されます。|
|ImapWebRequestMethods.Copy, "COPY"|COPYコマンドを送信してメッセージを別のメールボックスにコピーします。|コピー先のメールボックスはImapWebRequest.DestinationUriプロパティで指定します。|サーバがCOPYUIDレスポンスコードを返した場合は、コピーしたメッセージのURLがWebResponse.ResponseUriに設定されます。 また、コピー先のメールボックスを自動的に作成した場合、作成したメールボックスはImapWebResponse.Mailboxesプロパティに設定されます。|
 
|ImapWebRequestMethods.Expunge, "EXPUNGE"|STOREコマンドを送信して\Deletedフラグを追加した後、EXPUNGEコマンドを送信してメッセージを削除します。|サーバが&urn2url(urn:ietf:rfc:4315,#2.1){UID EXPUNGE};に対応していない場合、URLで指定されたメッセージだけでなく''既に\Deletedフラグが設定されている他のメッセージも同時に削除されます''。|-|
|ImapWebRequestMethods.Expunge, "EXPUNGE"|STOREコマンドを送信して\Deletedフラグを追加した後、EXPUNGEコマンドを送信してメッセージを削除します。|サーバが&urn2url(urn:ietf:rfc:4315,#2.1){UID EXPUNGE};に対応していない場合、URLで指定されたメッセージだけでなく''既に\Deletedフラグが設定されている他のメッセージも同時に削除されます''。|-|
 
|ImapWebRequestMethods.Store, "STORE"|STOREコマンドを送信してメッセージにフラグを追加・削除・設定します。|追加・削除・設定するフラグはImapWebRequest.StoreDataItemプロパティで指定します。|-|
|ImapWebRequestMethods.Store, "STORE"|STOREコマンドを送信してメッセージにフラグを追加・削除・設定します。|追加・削除・設定するフラグはImapWebRequest.StoreDataItemプロパティで指定します。|-|
245,7 245,6
 
|AllowCreateMailbox|true|COPY|COPYコマンドを送信した際にサーバがレスポンスコードTRYCREATEを返した場合、自動的にメールボックスを作成するかどうかを指定します。 現在の実装では、APPENDコマンドでTRYCREATEが返された場合でもメールボックスは作成せず、常にエラーとなります。|
|AllowCreateMailbox|true|COPY|COPYコマンドを送信した際にサーバがレスポンスコードTRYCREATEを返した場合、自動的にメールボックスを作成するかどうかを指定します。 現在の実装では、APPENDコマンドでTRYCREATEが返された場合でもメールボックスは作成せず、常にエラーとなります。|
 
|DestinationUri|null|COPY, RENAME|COPYの場合はメッセージのコピー先メールボックス名、RENAMEの場合は変更後のメールボックス名を含むURLを指定します。 URLはコピー元・変更前(WebRequest.RequestUri)と同一サーバ、同一ユーザである必要があります。 それ以外の場合、ArgumentExceptionをスローします。|
|DestinationUri|null|COPY, RENAME|COPYの場合はメッセージのコピー先メールボックス名、RENAMEの場合は変更後のメールボックス名を含むURLを指定します。 URLはコピー元・変更前(WebRequest.RequestUri)と同一サーバ、同一ユーザである必要があります。 それ以外の場合、ArgumentExceptionをスローします。|
 
|Subscription|true|CREATE, DELETE, RENAME, COPY|メールボックスを作成・削除する際に、対象のメールボックスに対して自動的にSUBSCRIBE/UNSUBSCRIBEコマンドを送信し、購読・購読解除するかどうかを指定します。|
|Subscription|true|CREATE, DELETE, RENAME, COPY|メールボックスを作成・削除する際に、対象のメールボックスに対して自動的にSUBSCRIBE/UNSUBSCRIBEコマンドを送信し、購読・購読解除するかどうかを指定します。|
+
|FetchDataItem|ImapFetchDataItemMacro.All|SEARCH, SORT, THREAD, FETCH|メッセージの属性を取得する際に、取得する属性を表すマクロを指定します。 マクロと取得する属性の対応は後述の対応表を参照してください。|
 
|StoreDataItem|null|STORE|STOREコマンドでメッセージに追加・削除・設定するフラグを指定します。|
|StoreDataItem|null|STORE|STOREコマンドでメッセージに追加・削除・設定するフラグを指定します。|
 
|StatusDataItem|null|STATUS|STATUSコマンドで取得するメールボックスの情報を指定します。|
|StatusDataItem|null|STATUS|STATUSコマンドで取得するメールボックスの情報を指定します。|
 
|SortCriteria|null|SORT|SORTコマンドで使用するソート方法を指定します。|
|SortCriteria|null|SORT|SORTコマンドで使用するソート方法を指定します。|
253,14 252,6
 
|FetchBlockSize|10240|FETCH|FETCHコマンドでメッセージ本文を取得する際に、1回のFETCHコマンドで取得するブロックのサイズをバイト単位で指定します。|
|FetchBlockSize|10240|FETCH|FETCHコマンドでメッセージ本文を取得する際に、1回のFETCHコマンドで取得するブロックのサイズをバイト単位で指定します。|
 
|FetchPeek|true|FETCH|FETCHコマンドでメッセージ本文を取得する際に、BODY.PEEK[]とBODY[]のどちらを使用するかを指定します。 trueの場合はBODY.PEEK[]が使用され、取得したメッセージは未読のままになります。|
|FetchPeek|true|FETCH|FETCHコマンドでメッセージ本文を取得する際に、BODY.PEEK[]とBODY[]のどちらを使用するかを指定します。 trueの場合はBODY.PEEK[]が使用され、取得したメッセージは未読のままになります。|
 

        

        
+
ImapWebRequest.FetchDataItemプロパティに指定できるマクロの値と、取得する属性の種類は次のとおりです。
+
|*ImapWebRequest.FetchDataItemプロパティに指定できる値
+
|値|取得される属性|
+
|ImapFetchDataItemMacro.All|ALLマクロで表される属性を取得します。 取得するのはFLAGS、INTERNALDATE、RFC822.SIZE、ENVELOPEです。|
+
|ImapFetchDataItemMacro.Fast|FASTマクロで表される属性を取得します。 取得するのはFLAGS、INTERNALDATE、RFC822.SIZEです。|
+
|ImapFetchDataItemMacro.Full|FULLマクロで表される属性を取得します。 取得するのはFLAGS、INTERNALDATE、RFC822.SIZE、ENVELOPE、BODYです。|
+
|ImapFetchDataItemMacro.Extensible|Fullと同じですが、BODYのかわりに拡張されたデータを含むBODYSTRUCTUREを取得します。|
+

          
 
WebRequestクラスから継承されるプロパティのうち、以下のプロパティは使用することができます。
WebRequestクラスから継承されるプロパティのうち、以下のプロパティは使用することができます。
 

        

        
 
|*WebRequestクラスから継承されるプロパティ
|*WebRequestクラスから継承されるプロパティ
273,6 264,7
 
|*ImapWebRequestクラスのプロパティ
|*ImapWebRequestクラスのプロパティ
 
|プロパティ|デフォルト|対象となるコマンド|解説|h
|プロパティ|デフォルト|対象となるコマンド|解説|h
 
|UseDeflateIfAvailable|false|全て|サーバがサポートしている場合、DEFLATE圧縮アルゴリズムを使用した接続に変更します。 (この機能は現在動作しません。 trueにした場合、NotImplementedExceptionがスローされます)|
|UseDeflateIfAvailable|false|全て|サーバがサポートしている場合、DEFLATE圧縮アルゴリズムを使用した接続に変更します。 (この機能は現在動作しません。 trueにした場合、NotImplementedExceptionがスローされます)|
-
|AllowLoginRedirect|true|全て(認証時)|認証時にサーバがレスポンスコードREFERRALを返した場合、レスポンスコードで指定されたURLで再度ログインを試みるかどうかを指定します。(この機能は未テストです。 期待する動作となるかどうかは分かりません)
 

        

        
 
***ImapWebRequestクラスのデフォルト値の変更
***ImapWebRequestクラスのデフォルト値の変更
 
ImapWebRequestDefaultsクラスのプロパティの値を変更することにより、ImapWebRequestクラスのプロパティに設定されるデフォルト値を一括して指定することができます。 全てのリクエストでデフォルトの値を変更したい場合は、ImapWebRequestDefaultsクラスのプロパティの値を変更してください。
ImapWebRequestDefaultsクラスのプロパティの値を変更することにより、ImapWebRequestクラスのプロパティに設定されるデフォルト値を一括して指定することができます。 全てのリクエストでデフォルトの値を変更したい場合は、ImapWebRequestDefaultsクラスのプロパティの値を変更してください。
314,7 306,6
 
      <add key="readWriteTimeout" value="-1"/>
      <add key="readWriteTimeout" value="-1"/>
 
      <add key="fetchBlockSize" value="102400"/>
      <add key="fetchBlockSize" value="102400"/>
 
      <add key="fetchPeek" value="true"/>
      <add key="fetchPeek" value="true"/>
+
      <add key="fetchDataItem" value="all"/>
 
      <add key="subscription" value="true"/>
      <add key="subscription" value="true"/>
 
      <add key="allowCreateMailbox" value="true"/>
      <add key="allowCreateMailbox" value="true"/>
 
      <add key="useTlsIfAvailable" value="true"/>
      <add key="useTlsIfAvailable" value="true"/>

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

current previous
38,7 38,7
 

        

        
 
本ライブラリはMIT X11ライセンスでのリリースとなります。
本ライブラリはMIT X11ライセンスでのリリースとなります。
 

        

        
~
:最新版|${smdncms:distfilelink,Smdn.Net.Imap4.Client-0.26.tar.bz2}
:最新版|${smdncms:distfilelink,Smdn.Net.Imap4.Client-0.25.tar.bz2}
 
:開発版|[[anonsvn]]よりチェックアウトできます
:開発版|[[anonsvn]]よりチェックアウトできます
 

        

        
 
デモ用アプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
デモ用アプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
85,7 85,7
 

        

        
 
以下の環境で動作することを確認済みです。
以下の環境で動作することを確認済みです。
 
-.NET Framework 3.5
-.NET Framework 3.5
~
-Mono 2.7
-Mono 2.7
 

        

        
 
ただし、Windows上での動作確認は不十分です。 テストはしていますが、予期しないバグがあるかもしれません。
ただし、Windows上での動作確認は不十分です。 テストはしていますが、予期しないバグがあるかもしれません。
 

        

        

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

current previous
98,7 98,7
 
|CLOSE|&urn2url(urn:ietf:rfc:3501,#6.4.2,short);|&color(green){implemented};||
|CLOSE|&urn2url(urn:ietf:rfc:3501,#6.4.2,short);|&color(green){implemented};||
 
|EXPUNGE|&urn2url(urn:ietf:rfc:3501,#6.4.3,short);|&color(green){implemented};||
|EXPUNGE|&urn2url(urn:ietf:rfc:3501,#6.4.3,short);|&color(green){implemented};||
 
|SEARCH, UID SEARCH|&urn2url(urn:ietf:rfc:3501,#6.4.4,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.6,short);|&color(green){implemented};|非ASCII文字での検索に対応&sub{*2};|
|SEARCH, UID SEARCH|&urn2url(urn:ietf:rfc:3501,#6.4.4,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.6,short);|&color(green){implemented};|非ASCII文字での検索に対応&sub{*2};|
~
|FETCH, UID FETCH|&urn2url(urn:ietf:rfc:3501,#6.4.5,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.4,short);|&color(green){implemented};||
|FETCH, UID FETCH|&urn2url(urn:ietf:rfc:3501,#6.4.5,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.4,short);|&color(green){implemented};|body-extension fieldsはレスポンスに含まれていても無視します。|
 
|STORE, UID STORE|&urn2url(urn:ietf:rfc:3501,#6.4.6,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.5,short);|&color(green){implemented};||
|STORE, UID STORE|&urn2url(urn:ietf:rfc:3501,#6.4.6,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short); &urn2url(urn:ietf:rfc:4466,#2.5,short);|&color(green){implemented};||
 
|COPY, UID COPY|&urn2url(urn:ietf:rfc:3501,#6.4.7,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short);|&color(green){implemented};|Modified UTF-7対応&sub{*1};|
|COPY, UID COPY|&urn2url(urn:ietf:rfc:3501,#6.4.7,short); &urn2url(urn:ietf:rfc:3501,#6.4.11,short);|&color(green){implemented};|Modified UTF-7対応&sub{*1};|
 
|~Extensions|-|-|-|
|~Extensions|-|-|-|

works/libs/Smdn.Formats.Mime/index.wiki.txt

current previous
11,8 11,6
 
--base64, quoted-printable, 7bit, 8bit, binary
--base64, quoted-printable, 7bit, 8bit, binary
 
-MIME Encoding
-MIME Encoding
 
--B-Encoding(base64), Q-Encoding(quoted-printable)
--B-Encoding(base64), Q-Encoding(quoted-printable)
+
-メッセージのパース・デコード
+
-メッセージの組み立て・エンコード(不完全)
 

        

        
 
*ダウンロード
*ダウンロード
 
#googleadunit
#googleadunit
21,7 19,6
 
-開発版
-開発版
 
--[[anonsvn]]よりチェックアウトできます
--[[anonsvn]]よりチェックアウトできます
 
-0.1x
-0.1x
+
--${smdncms:distfilelink,Smdn.Formats.Mime-0.17.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Formats.Mime-0.16.tar.bz2}
--${smdncms:distfilelink,Smdn.Formats.Mime-0.16.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Formats.Mime-0.15.tar.bz2}
--${smdncms:distfilelink,Smdn.Formats.Mime-0.15.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Formats.Mime-0.14.tar.bz2}
--${smdncms:distfilelink,Smdn.Formats.Mime-0.14.tar.bz2}
76,9 73,6
 
本ライブラリを使用したサンプルアプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
本ライブラリを使用したサンプルアプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
 

        

        
 
*変更履歴
*変更履歴
+
**0.17
+
-機能追加
+
--Content-Transfer-EncodingおよびCharsetに基づいてデコード・エンコードするStreamを取得するためのユーティリティメソッドを追加
 

        

        
 
**0.16
**0.16
 
-[[works/tools/junk/TundereBird]]バージョンアップに伴うリリース
-[[works/tools/junk/TundereBird]]バージョンアップに伴うリリース
118,7 112,7
 
*動作状況
*動作状況
 
以下の環境で動作することを確認済みです。
以下の環境で動作することを確認済みです。
 
-.NET Framework 3.5
-.NET Framework 3.5
~
-Mono 2.7
-Mono 2.7
 

        

        
 
version 0.13の時点では、手元にある計9,189通のメール(スパム、メーリングリスト・メールマガジンから、携帯から、添付ファイル付きなどを含む)を解析した結果、ほぼ正常に解析できています。 ただし解析した結果が「読める」かどうかまでは検証していません。 またMono 1.9ではJISからのデコードが出来ない場合があるようです。
version 0.13の時点では、手元にある計9,189通のメール(スパム、メーリングリスト・メールマガジンから、携帯から、添付ファイル付きなどを含む)を解析した結果、ほぼ正常に解析できています。 ただし解析した結果が「読める」かどうかまでは検証していません。 またMono 1.9ではJISからのデコードが出来ない場合があるようです。
 

        

        

works/libs/Smdn.Net.Pop3/releases/index.wiki.txt

current previous
4,7 4,6
 

        

        
 
*リリース一覧
*リリース一覧
 
-0.2x
-0.2x
+
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.26.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.25.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.25.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.24.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.24.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.23.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-0.23.tar.bz2}
15,26 14,6
 
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
 

        

        
 
*変更履歴
*変更履歴
+
**0.26
+
主にライブラリ本体と下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
+

          
+
-修正・改善
+
--SSL接続/STLSに失敗した場合、PopUpgradeConnectionExceptionをスローするようにした
+
--ログ
+
---POP/IMAPのプロトコルログを分けて収集できるように修正
+
---プロトコルログのTraceSourceのnameを'POP'に変更
+
--パフォーマンス関連
+
---下位ライブラリの実装の最適化、バッファアロケーションと動作速度を改善
+
---RETR/TOPの実装を修正、取得したレスポンスは保持せずに破棄するようにし、またオーバーヘッドが少なくなるようにした
+
--WebClients名前空間
+
---すべて小文字でなければpopsスキームとみなされない不具合を修正
+

          
+
0.25と0.26のパフォーマンスの比較。
+
|~テストケース|>|~テスト環境|
+
|~|Ubuntu 9.10 + Mono(r151732)|Windows Vista + .NET Framework 3.5|
+
|4kBのメッセージを1500回ダウンロード&br;3回試行|[1]04.39sec -> 02.97sec&br;[2]04.62sec -> 02.80sec&br;[3]04.55src -> 02.65sec|[1]04.31sec -> 03.93sec&br;[2]03.89sec -> 04.06sec&br;[3]04.19src -> 04.07sec|
+
|17MBのメッセージを10回ダウンロード&br;3回試行|[1]66.18sec -> 30.13sec&br;[2]60.20sec -> 30.09sec&br;[3]60.12src -> 29.24sec|[1]20.93sec -> 18.19sec&br;[2]21.23sec -> 18.29sec&br;[3]21.38src -> 18.30sec|
+

          
 
**0.25
**0.25
 
主にアプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
主にアプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
 

        

        

works/libs/Smdn.Net.Pop3/index.wiki.txt

current previous
35,7 35,7
 

        

        
 
本ライブラリはMIT X11ライセンスでのリリースとなります。
本ライブラリはMIT X11ライセンスでのリリースとなります。
 

        

        
~
:最新版|${smdncms:distfilelink,Smdn.Net.Pop3.Client-0.26.tar.bz2}
:最新版|${smdncms:distfilelink,Smdn.Net.Pop3.Client-0.25.tar.bz2}
 
:開発版|[[anonsvn]]よりチェックアウトできます
:開発版|[[anonsvn]]よりチェックアウトできます
 

        

        
 
デモ用アプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
デモ用アプリケーション[[works/tools/junk/TundereBird]]もあわせてご覧ください。
107,7 107,7
 

        

        
 
以下の環境で動作することを確認済みです。
以下の環境で動作することを確認済みです。
 
-.NET Framework 3.5
-.NET Framework 3.5
~
-Mono 2.7
-Mono 2.7
 

        

        
 
ただし、Windows上での動作確認は不十分です。 テストはしていますが、予期しないバグがあるかもしれません。
ただし、Windows上での動作確認は不十分です。 テストはしていますが、予期しないバグがあるかもしれません。