2013-07-15T22:39:56の更新内容

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/]]よりチェックアウトできます
+
-0.9x
+
--${smdncms:distfilelink,SimpleMailer-0.90.tar.bz2}
+
---下記ライブラリのソースを同梱しています
+
----[[works/libs/Smdn.Net.Imap4.Client]] 0.90
+
----[[works/libs/Smdn.Net.Pop3.Client]] 1.15
+
----[[works/libs/Smdn.Security.Authentication.Sasl]] 0.33
+
----[[works/libs/Smdn.Formats.Mime]] 0.35
+
----[[works/libs/Smdn.Formats.Ini]] 0.21
 
-0.8x
-0.8x
 
--${smdncms:distfilelink,SimpleMailer-0.85.tar.bz2}
--${smdncms:distfilelink,SimpleMailer-0.85.tar.bz2}
 
---下記ライブラリのソースを同梱しています
---下記ライブラリのソースを同梱しています
79,10 71,6
 
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*変更履歴
*変更履歴
+
**0.90 (2013-07-15)
+
-修正・改善
+
--ライブラリのインターフェイス変更にあわせて実装を修正
+

          
 
**0.85 (2013-02-07)
**0.85 (2013-02-07)
 
-ライブラリの更新のみ、本体部分は変更なし
-ライブラリの更新のみ、本体部分は変更なし
 

        

        

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

current previous
19,16 19,6
 
#googleadunit
#googleadunit
 
-開発版
-開発版
 
--[[http://svn.smdn.jp/anonsvn/tools/MRAConnector/trunk/]]よりチェックアウトできます
--[[http://svn.smdn.jp/anonsvn/tools/MRAConnector/trunk/]]よりチェックアウトできます
+
-0.9x
+
--パッケージ
+
---${smdncms:distfilelink,MRAConnector-0.90.zip}
+
--ソースコード
+
---${smdncms:distfilelink,MRAConnector-0.90.tar.bz2}
+
----下記ライブラリのソースを同梱しています
+
-----[[works/libs/Smdn.Net.Imap4.Client]] 0.90
+
-----[[works/libs/Smdn.Net.Pop3.Client]] 1.15
+
-----[[works/libs/Smdn.Security.Authentication.Sasl]] 0.33
+
-----[[works/libs/Smdn.Formats.Ini]] 0.21
 
-0.8x
-0.8x
 
--パッケージ
--パッケージ
 
---${smdncms:distfilelink,MRAConnector-0.85.zip}
---${smdncms:distfilelink,MRAConnector-0.85.zip}
110,9 100,6
 
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*変更履歴
*変更履歴
+
**0.90 (2013-07-15)
+
-ライブラリのインターフェイス変更にあわせて実装を修正
+

          
 
**0.85 (2013-02-07)
**0.85 (2013-02-07)
 
-ライブラリの更新のみ、本体部分は変更なし
-ライブラリの更新のみ、本体部分は変更なし
 

        

        

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

current previous
18,7 18,6
 
-開発版
-開発版
 
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
 
-0.2x
-0.2x
+
--${smdncms:distfilelink,Smdn.Formats.Ini-0.21.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Formats.Ini-0.20.tar.bz2}
--${smdncms:distfilelink,Smdn.Formats.Ini-0.20.tar.bz2}
 
-0.1x
-0.1x
 
--${smdncms:distfilelink,Smdn.Formats.Ini-0.19.tar.bz2}
--${smdncms:distfilelink,Smdn.Formats.Ini-0.19.tar.bz2}
149,10 148,6
 

        

        
 
*変更履歴
*変更履歴
 

        

        
+
**0.21 (2013-07-15)
+
-修正・改善
+
--ファイルへの上書きを行う場合に以前の内容が残ったままとなる可能性があったのを修正
+

          
 
**0.20 (2013-02-07)
**0.20 (2013-02-07)
 
-修正・改善
-修正・改善
 
--変更可能になっていたIniDocument.DefaultComparerをreadonlyに変更
--変更可能になっていたIniDocument.DefaultComparerをreadonlyに変更

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

current previous
7,8 7,6
 
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
0.20以降はMIT X11ライセンスでのリリースとなります。 0.20より前のバージョンについては特に使用条件を定めていません。
 

        

        
 
**ソースコード
**ソースコード
+
-0.9x
+
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90.tar.bz2}
 
-0.8x
-0.8x
 
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.85.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.85.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.84.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.84.tar.bz2}
41,21 39,6
 
0.36までは[[works/libs/Smdn.Net.Imap4.WebClients]]のソースコードも含まれています。
0.36までは[[works/libs/Smdn.Net.Imap4.WebClients]]のソースコードも含まれています。
 

        

        
 
**ビルド済みパッケージ
**ビルド済みパッケージ
+
|*0.90 (2013-07-15)
+
|~種類|~パッケージ|h
+
|~通常版|{{
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx4.5.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx4.0.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx3.5.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx2.0.zip,.NET 2.1}
+
}}|
+
|~単一アセンブリ版&sub{*1};|{{
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx4.5-combined.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx4.0-combined.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx3.5-combined.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Net.Imap4.Client-0.90-netfx2.0-combined.zip,.NET 2.1}
+
}}|
+

          
 
|*0.85 (2013-02-07)
|*0.85 (2013-02-07)
 
|~種類|~パッケージ|h
|~種類|~パッケージ|h
 
|~通常版|{{
|~通常版|{{
197,63 180,31
 
:単一アセンブリ版&sup{*1};|すべてのファイルを一つのアセンブリにまとめたものです。 [[works/libs/Smdn.Net.Pop3.Client]]や[[works/libs/Smdn.Formats.Mime]]と組み合わせて使用する場合は、型名が衝突するため通常版を使用してください。 詳しくは[[ドキュメントのアセンブリ構成に関する解説>works/libs/Smdn.Net.Imap4.Client/docs#assemblies]]を参照してください。
:単一アセンブリ版&sup{*1};|すべてのファイルを一つのアセンブリにまとめたものです。 [[works/libs/Smdn.Net.Pop3.Client]]や[[works/libs/Smdn.Formats.Mime]]と組み合わせて使用する場合は、型名が衝突するため通常版を使用してください。 詳しくは[[ドキュメントのアセンブリ構成に関する解説>works/libs/Smdn.Net.Imap4.Client/docs#assemblies]]を参照してください。
 
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
 

        

        
~
*変更履歴 [#changes]
*変更履歴
~
**0.90 (2013-07-15) [#changes_v0.90]
**0.85 (2013-02-07)
+
主に最近更新されたRFCへのキャッチアップと、利用不可能となったインスタンスの扱いに関する動作変更。
+

          
+
-機能追加
+
--&urn2url(urn:ietf:rfc:6851);をサポート
+
--[[SASL XOAUTH2 Mechanism:https://developers.google.com/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism]]をサポート
+
--既存の実装を&urn2url(urn:ietf:rfc:6154);に更新 (差分なし)
+
--ImapClient
+
---ImapMessageInfo.MoveTo(), ImapMessageInfoList.MoveTo()について、サーバーが&urn2url(urn:ietf:rfc:6851);をサポートしている場合はMOVEコマンドによるメッセージの移動を行うようにした
+
---メッセージが利用可能であることを表すプロパティImapMessageInfo.IsAvailableおよびImapMessageInfoList.IsAvailableを追加 (取得元となったメールボックスが閉じられている場合、メッセージを移動・削除して既に存在しなくなった場合などにはfalseとなる)
+
-修正・改善
+
--&urn2url(urn:ietf:id:draft-ietf-morg-inthread-00,short);関連の実装を削除
+
--Gmail XLIST関連の実装を削除
+
--IDictionary<,>として公開していたいくつかのメンバについて、.NET Framework 4.5以降においてはIReadOnlyDictionary<,>として公開するように変更
+
--ファイルへの上書きを行う場合に以前の内容が残ったままとなる可能性があったのを修正
+
--キャッシュされた長さ0の配列を使用するように修正
+
--List<>およびDictionary<,>が確保する初期サイズが必要最低限となるように修正
+
--その他内部実装のパフォーマンス改善
+
--ImapClient
+
---Smdn.Net.Imap4.Protocol.Client.ImapConnectionクラスのプロパティClientCertificates, ServerCertificateValidationCallback, ClientCertificateSelectionCallbackをSmdn.Net.Imap4.Client.ImapSslConnectionに移動
+
---閉じたImapOpenedMailboxInfo、移動・削除したImapMessageInfo・ImapMessageInfoListの扱いに関して、以下のように変更
+
----ImapMessageVanishedExceptionを追加、ImapMessageInfoのメソッド・プロパティを呼び出した結果、他のクライアントにより該当するメッセージが削除されていること検出した場合にスローするようにした
+
----ImapUnavailableExceptionを追加、既に削除・移動したメッセージや、取得元のメールボックスが既に閉じているメッセージに対して操作を行おうとした場合にスローするようにした
+
----ImapMessageDeletedException・ImapMailboxClosedExceptionをObsoleteにし、状況によりImapUnavailableExceptionまたはImapMessageVanishedExceptionをスローするように変更
+
----同名のメールボックスを再度Open()してImapOpenedMailboxInfoを取得する場合、以前に開かれていたImapOpenedMailboxInfoは利用不可能となるようにした (例外ImapUnavailableExceptionをスローする)
+
----同名のメールボックスを再度Open()してImapOpenedMailboxInfoを取得する場合、以前に開かれていたImapOpenedMailboxInfoのIsOpenプロパティはfalseを返すように変更
+
----ImapMailboxInfo.MoveTo()により現在開いているメールボックスを移動もしくは名前の変更をした場合、再度Openせず、該当するImapOpenedMailboxInfoは利用不可能となるようにした (例外ImapUnavailableExceptionをスローする)
+
---既に閉じられた状態でImapOpenedMailboxInfo.Close/Disposeメソッドを呼び出した場合、無関係のメールボックスが閉じられてしまう可能性があったのを修正
+
---レスポンスの解析を二重に行なっていた箇所を修正
+
--ImapSession
+
---ESEARCHまたはESORTの送信後にキャパビリティのチェック処理が正しく動作しなくなる不具合を修正
+

          
+
**0.85 (2013-02-07) [#changes_v0.85]
 
-機能追加
-機能追加
 
--Content-Typeがuuencodeのメールをデコード出来るようにした (ただし、本文中にuuencodeされたファイルが複数格納されている場合は、先頭のファイルのみを取得可能)
--Content-Typeがuuencodeのメールをデコード出来るようにした (ただし、本文中にuuencodeされたファイルが複数格納されている場合は、先頭のファイルのみを取得可能)
 

        

        
~
**0.84 (2012-10-08) [#changes_v0.84]
**0.84 (2012-10-08)
 
-修正・改善
-修正・改善
 
--Mono 2.6関連のワークアラウンドを削除
--Mono 2.6関連のワークアラウンドを削除
 
--上位ライブラリの不具合修正
--上位ライブラリの不具合修正
 

        

        
~
**0.83 (2012-10-01) [#changes_v0.83]
**0.83 (2012-10-01)
 
-修正・改善
-修正・改善
 
--上位ライブラリのインターフェイス変更にあわせて実装を修正
--上位ライブラリのインターフェイス変更にあわせて実装を修正
 

        

        
~
**0.82 (2012-09-24) [#changes_v0.82]
**0.82 (2012-09-24)
 
-機能追加
-機能追加
 
--メッセージのヘッダ部分のみを取得するメソッドImapMessageInfo.GetHeader(), GetRawHeader()を追加
--メッセージのヘッダ部分のみを取得するメソッドImapMessageInfo.GetHeader(), GetRawHeader()を追加
 
--ImapClient.ConnectAsync()を追加
--ImapClient.ConnectAsync()を追加
 
--.NET 4.5用のcsprojファイルを追加
--.NET 4.5用のcsprojファイルを追加
 

        

        
~
**0.81 (2012-09-08) [#changes_v0.81]
**0.81 (2012-09-08)
 
-修正・改善
-修正・改善
 
--上位ライブラリのインターフェイス変更にあわせて実装を修正
--上位ライブラリのインターフェイス変更にあわせて実装を修正
 

        

        
~
**0.80 (2011-02-18) [#changes_v0.80]
**0.80 (2011-02-18)
 
主にIDLE関連の機能追加と実装の細かい修正等。
主にIDLE関連の機能追加と実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
271,7 222,7
 
--WebClients
--WebClients
 
---ソースパッケージを分離、[[works/libs/Smdn.Net.Imap4.WebClients]]として個別にリリース
---ソースパッケージを分離、[[works/libs/Smdn.Net.Imap4.WebClients]]として個別にリリース
 

        

        
~
**0.36 (2011-02-03) [#changes_v0.36]
**0.36 (2011-02-03)
 
主にメールボックス関連の機能の強化、その他実装の細かい修正等。
主にメールボックス関連の機能の強化、その他実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
308,7 259,7
 
----ImapMessageInfo.MoveTo/CopyTo
----ImapMessageInfo.MoveTo/CopyTo
 
----ImapOpenedMailboxInfo.MoveMessagesTo/CopyMessagesTo
----ImapOpenedMailboxInfo.MoveMessagesTo/CopyMessagesTo
 

        

        
~
**0.35 (2011-01-08) [#changes_v0.35]
**0.35 (2011-01-08)
 
主に機能追加と細かい修正等。
主に機能追加と細かい修正等。
 

        

        
 
-機能追加
-機能追加
326,7 277,7
 
---ImapMailboxInfo.MoveTo()、ImapMessageBase.CopyTo/MoveTo()に指定された移動・コピー先が異なるクライアントで取得したImapMailboxInfoだった場合、NotImplementedExceptionをスローするように修正 (今後のバージョンで実装予定)
---ImapMailboxInfo.MoveTo()、ImapMessageBase.CopyTo/MoveTo()に指定された移動・コピー先が異なるクライアントで取得したImapMailboxInfoだった場合、NotImplementedExceptionをスローするように修正 (今後のバージョンで実装予定)
 
---ImapMessageInfoBase.MoveTo()の移動先が移動元と同じメールボックスだった場合、何もしないように修正
---ImapMessageInfoBase.MoveTo()の移動先が移動元と同じメールボックスだった場合、何もしないように修正
 

        

        
~
**0.34 (2010-12-11) [#changes_v0.34]
**0.34 (2010-12-11)
 
主にバグ修正。
主にバグ修正。
 

        

        
 
-機能追加
-機能追加
338,7 289,7
 
--ImapClient
--ImapClient
 
---ImapMessageInfo.OpenRead等が返すStreamを閉じた場合、CanRead, CanWrite, CanSeek, CanTimeoutはObjectDisposedExceptionをスローせず常にfalseを返すように修正 (Streamの仕様に合わせた修正)
---ImapMessageInfo.OpenRead等が返すStreamを閉じた場合、CanRead, CanWrite, CanSeek, CanTimeoutはObjectDisposedExceptionをスローせず常にfalseを返すように修正 (Streamの仕様に合わせた修正)
 

        

        
~
**0.33 (2010-05-15) [#changes_v0.33]
**0.33 (2010-05-15)
 
主に匿名・平文での認証に関する機能の強化、不具合と実装の細かい修正等。
主に匿名・平文での認証に関する機能の強化、不具合と実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
372,7 323,7
 
---ImapWebRequest.UsingSaslMechanismsに"ANONYMOUS"が含まれていてもANONYMOUS認証は試行せずに無視するように修正
---ImapWebRequest.UsingSaslMechanismsに"ANONYMOUS"が含まれていてもANONYMOUS認証は試行せずに無視するように修正
 
---ImapWebRequestDefaults.AnonymousTokenを廃止、常にリクエストURIのユーザ名(指定されていない場合は'anonymous@')を使うように変更
---ImapWebRequestDefaults.AnonymousTokenを廃止、常にリクエストURIのユーザ名(指定されていない場合は'anonymous@')を使うように変更
 

        

        
~
**0.32 (2010-04-25) [#changes_v0.32]
**0.32 (2010-04-25)
 
.NET Frameworkの各バージョン向けビルドのサポート、不具合と実装の細かい修正等。
.NET Frameworkの各バージョン向けビルドのサポート、不具合と実装の細かい修正等。
 
-機能追加
-機能追加
 
--.NET Framework 2.0, 3.5, 4の各バージョン用のプロジェクトファイルを追加 (ただし2.x系は2.1以上にのみ対応)
--.NET Framework 2.0, 3.5, 4の各バージョン用のプロジェクトファイルを追加 (ただし2.x系は2.1以上にのみ対応)
388,7 339,7
 
---既に接続されている状態でImapClient.Connect()を呼ぶと新たにセッションが作成されてしまう不具合を修正、接続中の場合はImapProtocolViolationExceptionをスローするようにした
---既に接続されている状態でImapClient.Connect()を呼ぶと新たにセッションが作成されてしまう不具合を修正、接続中の場合はImapProtocolViolationExceptionをスローするようにした
 
---ImapMessageInfo.InternalDateをNullable<DateTimeOffset>からDateTimeOffsetに変更
---ImapMessageInfo.InternalDateをNullable<DateTimeOffset>からDateTimeOffsetに変更
 

        

        
~
**0.31 (2010-04-18) [#changes_v0.31]
**0.31 (2010-04-18)
 
主に若干のパフォーマンス改善、実装の細かい修正等。
主に若干のパフォーマンス改善、実装の細かい修正等。
 
-機能追加
-機能追加
 
--ImapClient
--ImapClient
410,7 361,7
 
---ImapWebRequestDefaults.ClientIDのComparerをStringComparer.OrdinalIgnoreCaseに変更
---ImapWebRequestDefaults.ClientIDのComparerをStringComparer.OrdinalIgnoreCaseに変更
 
---ImapWebResponse.ServerIDをIDictionaryに変更、常にread-onlyな同一インスタンスを返すようにした
---ImapWebResponse.ServerIDをIDictionaryに変更、常にread-onlyな同一インスタンスを返すようにした
 

        

        
~
**0.30 (2010-04-04) [#changes_v0.30]
**0.30 (2010-04-04)
 
主にImapClientの機能強化・テストケースの追加と細かい修正等。
主にImapClientの機能強化・テストケースの追加と細かい修正等。
 

        

        
 
-機能追加
-機能追加
441,7 392,7
 
---ImapMessageInfo.OpenRead(ImapMessageFetchBodyOptions)が常にBODYSTRUCTUREを取得し不要なデコードを行ってしまう不具合を修正
---ImapMessageInfo.OpenRead(ImapMessageFetchBodyOptions)が常にBODYSTRUCTUREを取得し不要なデコードを行ってしまう不具合を修正
 
---ImapMessageFetchBodyOptions.Peekを削除、代わりにSetSeenを追加
---ImapMessageFetchBodyOptions.Peekを削除、代わりにSetSeenを追加
 

        

        
~
**0.29 (2010-03-22) [#changes_v0.29]
**0.29 (2010-03-22)
 
主にImapClientの機能追加・不具合修正とSmdn.Net.Imap4.WebClientsのアセンブリ化
主にImapClientの機能追加・不具合修正とSmdn.Net.Imap4.WebClientsのアセンブリ化
 

        

        
 
-機能追加
-機能追加
494,7 445,7
 
-SSL/TLS不使用
-SSL/TLS不使用
 
-Ubuntuでは同一マシン上のサーバ、Windowsでは別マシン上のサーバを使用
-Ubuntuでは同一マシン上のサーバ、Windowsでは別マシン上のサーバを使用
 

        

        
~
**0.28 (2010-03-15) [#changes_v0.28]
**0.28 (2010-03-15)
 
主にImapClientの機能追加、AIM Mailで発覚した不具合の修正
主にImapClientの機能追加、AIM Mailで発覚した不具合の修正
 
-機能追加
-機能追加
 
--既存の実装を&urn2url(urn:ietf:rfc:5819,short);に更新
--既存の実装を&urn2url(urn:ietf:rfc:5819,short);に更新
523,7 474,7
 
---InvalidOperationExceptionをスローしていた箇所をImapProtocolViolationExceptionをスローするように変更
---InvalidOperationExceptionをスローしていた箇所をImapProtocolViolationExceptionをスローするように変更
 
---ImapOpenedMailboxInfo.GetMessageByUidでSEARCHを発行しないように実装を修正
---ImapOpenedMailboxInfo.GetMessageByUidでSEARCHを発行しないように実装を修正
 

        

        
~
**0.27 (2010-02-28) [#changes_v0.27]
**0.27 (2010-02-28)
 
主に新しいクライアント実装ImapClientの追加、ImapMessageまわりのインターフェイスの整理、LIST-EXTENDEDとLIST-STATUS関連の実装の修正。
主に新しいクライアント実装ImapClientの追加、ImapMessageまわりのインターフェイスの整理、LIST-EXTENDEDとLIST-STATUS関連の実装の修正。
 

        

        
 
-機能追加
-機能追加
547,7 498,7
 
|4kBのメッセージを1500回ダウンロード&br;3回試行|[1]03.82sec -> 03.99sec&br;[2]03.70sec -> 03.91sec&br;[3]03.78src -> 03.76sec|[1]04.82sec -> 05.12sec&br;[2]04.69sec -> 04.91sec&br;[3]04.74src -> 05.46sec|
|4kBのメッセージを1500回ダウンロード&br;3回試行|[1]03.82sec -> 03.99sec&br;[2]03.70sec -> 03.91sec&br;[3]03.78src -> 03.76sec|[1]04.82sec -> 05.12sec&br;[2]04.69sec -> 04.91sec&br;[3]04.74src -> 05.46sec|
 
|17MBのメッセージを10回ダウンロード&br;3回試行|[1]33.50sec -> 31.37sec&br;[2]32.50sec -> 30.45sec&br;[3]32.62src -> 31.22sec|[1]42.58sec -> 39.39sec&br;[2]39.59sec -> 39.43sec&br;[3]40.06src -> 39.94sec|
|17MBのメッセージを10回ダウンロード&br;3回試行|[1]33.50sec -> 31.37sec&br;[2]32.50sec -> 30.45sec&br;[3]32.62src -> 31.22sec|[1]42.58sec -> 39.39sec&br;[2]39.59sec -> 39.43sec&br;[3]40.06src -> 39.94sec|
 

        

        
~
**0.26 (2010-02-22) [#changes_v0.26]
**0.26 (2010-02-22)
 
主にBODYSTRUCTURE関連の機能強化、下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
主にBODYSTRUCTURE関連の機能強化、下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
 

        

        
 
-機能追加
-機能追加
577,7 528,7
 
|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|
|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|
|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 (2010-02-15) [#changes_v0.25]
**0.25 (2010-02-15)
 
主に未サポートだった拡張の実装、アプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
主に未サポートだった拡張の実装、アプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
 

        

        
 
-機能追加
-機能追加
613,7 564,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 (2010-02-06) [#changes_v0.24]
**0.24 (2010-02-06)
 
主にIMAP URL関連の修正と、WebClients名前空間のクラスでの非ASCII文字を含む検索とpartial fetchのサポート。
主にIMAP URL関連の修正と、WebClients名前空間のクラスでの非ASCII文字を含む検索とpartial fetchのサポート。
 

        

        
 
-機能追加
-機能追加
652,7 603,7
 
---FETCHコマンドでのメッセージの属性とメッセージ本文の取得を単一のコマンドで行うようにした
---FETCHコマンドでのメッセージの属性とメッセージ本文の取得を単一のコマンドで行うようにした
 
---FETCHコマンドで取得するメッセージの属性を、ALLマクロ相当からFULLマクロ相当の値に変更
---FETCHコマンドで取得するメッセージの属性を、ALLマクロ相当からFULLマクロ相当の値に変更
 

        

        
~
**0.23 (2010-01-30) [#changes_v0.23]
**0.23 (2010-01-30)
 
主に未サポートだった拡張の実装、メールボックス操作系コマンドの実装不備の修正。
主に未サポートだった拡張の実装、メールボックス操作系コマンドの実装不備の修正。
 

        

        
 
-機能追加
-機能追加
697,7 648,7
 
--ImapSession.StatusChangedイベントを廃止し、ImapSession.Idleメソッドへコールバック用のデリゲートを指定できるように変更
--ImapSession.StatusChangedイベントを廃止し、ImapSession.Idleメソッドへコールバック用のデリゲートを指定できるように変更
 
--ImapSession.(Begin)IdleメソッドでIDLEを開始した後TraceSourceにアイドル中であることを出力する間隔を、ImapSession.ReceiveTimeoutから30秒の固定値に変更
--ImapSession.(Begin)IdleメソッドでIDLEを開始した後TraceSourceにアイドル中であることを出力する間隔を、ImapSession.ReceiveTimeoutから30秒の固定値に変更
 

        

        
~
**0.22 (2010-01-23) [#changes_v0.22]
**0.22 (2010-01-23)
 
主にWebClients名前空間のクラスの改善。
主にWebClients名前空間のクラスの改善。
 

        

        
 
-機能追加
-機能追加
734,7 685,7
 
--WebClients名前空間のテストケースを追加
--WebClients名前空間のテストケースを追加
 
--上記以外の細かい修正など
--上記以外の細かい修正など
 

        

        
~
**0.21 (2009-12-16) [#changes_v0.21]
**0.21 (2009-12-16)
 
-機能追加
-機能追加
 
--WebClient名前空間
--WebClient名前空間
 
---ImapWebRequest.ReadOnlyプロパティを追加 (SELECTが指定されない限りEXPUNGEでメールボックスを選択する)
---ImapWebRequest.ReadOnlyプロパティを追加 (SELECTが指定されない限りEXPUNGEでメールボックスを選択する)
751,7 702,7
 
--アセンブリ名・名前空間をSmdn.Protocols.Imap4からSmdn.Net.Imap4に改名
--アセンブリ名・名前空間をSmdn.Protocols.Imap4からSmdn.Net.Imap4に改名
 
--アセンブリ構成を変更
--アセンブリ構成を変更
 

        

        
~
**0.20 (2009-06-13) [#changes_v0.20]
**0.20 (2009-06-13)
 
-機能追加
-機能追加
 
--DIGEST-MD5およびNTLM認証に対応
--DIGEST-MD5およびNTLM認証に対応
 
--&urn2url(urn:ietf:rfc:4315){UIDPLUS};、&urn2url(urn:ietf:rfc:4731){ESEARCH};、&urn2url(urn:ietf:rfc:5182){SEARCHRES};などの拡張に対応
--&urn2url(urn:ietf:rfc:4315){UIDPLUS};、&urn2url(urn:ietf:rfc:4731){ESEARCH};、&urn2url(urn:ietf:rfc:5182){SEARCHRES};などの拡張に対応
761,24 712,24
 
-その他
-その他
 
--ライセンスをMIT X11に変更
--ライセンスをMIT X11に変更
 

        

        
~
**0.13 (2008-04-27) [#changes_v0.13]
**0.13 (2008-04-27)
 
-STARTTLSコマンドによるTLSへのアップグレードに対応
-STARTTLSコマンドによるTLSへのアップグレードに対応
 
-不正な形式のModified UTF-7文字列のデコードで例外となる場合の対処を追加
-不正な形式のModified UTF-7文字列のデコードで例外となる場合の対処を追加
 
-PREAUTH応答のグリーティングメッセージからのcapability dataの取得に失敗する不具合を修正
-PREAUTH応答のグリーティングメッセージからのcapability dataの取得に失敗する不具合を修正
 
-FETCHリクエストを10240オクテット毎にpartial fetchするように改善
-FETCHリクエストを10240オクテット毎にpartial fetchするように改善
 
-未知の種類のBODYSTRUCTUREの場合でも解析を継続するように改善
-未知の種類のBODYSTRUCTUREの場合でも解析を継続するように改善
 

        

        
~
**0.12 (2008-04-07) [#changes_v0.12]
**0.12 (2008-04-07)
 
-Modified UTF-7(日本語等非ASCII文字を含むメールボックス名)に対応
-Modified UTF-7(日本語等非ASCII文字を含むメールボックス名)に対応
 
-レスポンス解析処理のバグを修正
-レスポンス解析処理のバグを修正
 
-IDLE後のレスポンス処理が即座に行われない不具合を修正
-IDLE後のレスポンス処理が即座に行われない不具合を修正
 
-HMACMD5アルゴリズムの実装を独自の実装からライブラリ標準のクラスを用いたものに変更
-HMACMD5アルゴリズムの実装を独自の実装からライブラリ標準のクラスを用いたものに変更
 

        

        
~
**0.11 (2008-03-10) [#changes_v0.11]
**0.11 (2008-03-10)
 
-グリーティングメッセージからのcapability dataの取得に失敗する不具合を修正
-グリーティングメッセージからのcapability dataの取得に失敗する不具合を修正
 
-セッションのステートチェック処理の誤りを修正
-セッションのステートチェック処理の誤りを修正
 
-AUTHENTICATEで使用できる認証方法がない場合の動作を変更
-AUTHENTICATEで使用できる認証方法がない場合の動作を変更
 

        

        
~
**0.10 (2008-03-06) [#changes_v0.10]
**0.10 (2008-03-06)
 
-初版
-初版
 

        

        

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

current previous
13,7 13,7
 
*ダウンロード
*ダウンロード
 
本ライブラリはMIT X11ライセンスでのリリースとなります。
本ライブラリはMIT X11ライセンスでのリリースとなります。
 

        

        
~
:最新版 (ソースコード)|${smdncms:distfilelink,Smdn.Net.Imap4.Client-0.90.tar.bz2}
:最新版 (ソースコード)|${smdncms:distfilelink,Smdn.Net.Imap4.Client-0.85.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]]をご覧ください
 

        

        
23,12 23,11
 
**主な機能
**主な機能
 
+すべての標準コマンドの送受信
+すべての標準コマンドの送受信
 
+いくつかの拡張コマンドの送受信
+いくつかの拡張コマンドの送受信
+
++MOVE
 
++IDLE
++IDLE
 
++QUOTA
++QUOTA
 
++SORT/THREADほか
++SORT/THREADほか
 
+SSL/TLS接続(IMAP over SSL, STARTTLS)
+SSL/TLS接続(IMAP over SSL, STARTTLS)
~
+SASL認証メカニズム(DIGEST-MD5, XOAUTH2他)
+SASL認証メカニズム(DIGEST-MD5他)
 

        

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

        

        
52,11 51,12
 
using System;
using System;
 

        

        
 
using Smdn.Net.Imap4.Client;
using Smdn.Net.Imap4.Client;
-
using Smdn.Net.Imap4.Protocol.Client;
 

        

        
 
class GimapFetchExample {
class GimapFetchExample {
 
  public static void Main()
  public static void Main()
 
  {
  {
~
    ImapSslConnection.ServerCertificateValidationCallback += delegate {
    ImapConnection.ServerCertificateValidationCallback += delegate {
 
      return true;
      return true;
 
    };
    };
 

        

        
80,10 80,11
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 

        

        
 
Imports Smdn.Net.Imap4.Client
Imports Smdn.Net.Imap4.Client
-
Imports Smdn.Net.Imap4.Protocol.Client
 

        

        
 
Class GimapFetchExample
Class GimapFetchExample
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    ImapSslConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
    ImapConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
 

        

        
 
    Using client As New ImapClient(New Uri("imaps://username@imap.gmail.com/"))
    Using client As New ImapClient(New Uri("imaps://username@imap.gmail.com/"))
 
      client.Connect("password")
      client.Connect("password")
118,13 119,11
 
以下のIMAPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、IMAPでのアクセスが可能なメールサービスでの動作報告を頂いています。
以下のIMAPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、IMAPでのアクセスが可能なメールサービスでの動作報告を頂いています。
 
-GMail (Gimap)
-GMail (Gimap)
 
-AIM Mail
-AIM Mail
~
-Dovecot (1.2.11, 2.1.9, 2.2.3)
-Dovecot (1.2.11, 2.1.9)
 

        

        
 
以下の環境で概ね問題なく動作することを確認済みです。 テストはしていますが、予期しないバグがあるかもしれません。
以下の環境で概ね問題なく動作することを確認済みです。 テストはしていますが、予期しないバグがあるかもしれません。
+
-.NET Framework 4.5
 
-.NET Framework 4
-.NET Framework 4
 
-.NET Framework 3.5 SP 1
-.NET Framework 3.5 SP 1
+
-Mono 3.0.12
 
-Mono 2.11.3
-Mono 2.11.3
 
-Mono 2.10.8
-Mono 2.10.8
 

        

        

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 0.90>works/libs/Smdn.Net.Imap4.Client/releases#changes_v0.90]]時点のもので、記載不備などがあるかもしれません。
[[works/libs/Smdn.Net.Imap4.Client]]のドキュメントとサンプルです。 ここに記載されているものはversion 0.82時点のもので、記載不備などがあるかもしれません。
 

        

        
 
サンプルコードは[[このページの最後>#samples]]にあります。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
サンプルコードは[[このページの最後>#samples]]にあります。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
327,13 327,13
 
***証明書の選択と検証 [#certs]
***証明書の選択と検証 [#certs]
 
SSL/TLS接続時に使用する証明書は&msdn(netfx,type,System.Security.Cryptography.X509Certificates.X509Certificate2Collection){X509Certificate2Collection};で設定できます。 また、証明書の選択と検証には&msdn(netfx,type,System.Net.Security.RemoteCertificateValidationCallback){RemoteCertificateValidationCallbackデリゲート};と&msdn(netfx,type,System.Net.Security.LocalCertificateSelectionCallback){LocalCertificateSelectionCallbackデリゲート};を指定できます。 デフォルトの状態では、SSL/TLS接続時にこれらのコールバックメソッドを呼び出して証明書の検証と選択を行い、&msdn(netfx,type,System.Net.Security.SslStream){SslStream};を作成します。
SSL/TLS接続時に使用する証明書は&msdn(netfx,type,System.Security.Cryptography.X509Certificates.X509Certificate2Collection){X509Certificate2Collection};で設定できます。 また、証明書の選択と検証には&msdn(netfx,type,System.Net.Security.RemoteCertificateValidationCallback){RemoteCertificateValidationCallbackデリゲート};と&msdn(netfx,type,System.Net.Security.LocalCertificateSelectionCallback){LocalCertificateSelectionCallbackデリゲート};を指定できます。 デフォルトの状態では、SSL/TLS接続時にこれらのコールバックメソッドを呼び出して証明書の検証と選択を行い、&msdn(netfx,type,System.Net.Security.SslStream){SslStream};を作成します。
 

        

        
~
デフォルトでは、接続・認証時にImapSslConnectionクラス(Smdn.Net.Imap4.Client名前空間)の以下のメンバを参照して証明書の選択と検証を行います。
デフォルトでは、接続・認証時にImapConnectionクラス(Smdn.Net.Imap4.Protocol.Client名前空間)の以下のメンバを参照して証明書の選択と検証を行います。
 

        

        
 
|*SSL/TLS接続時に参照するメンバ(いずれもクラスプロパティ)
|*SSL/TLS接続時に参照するメンバ(いずれもクラスプロパティ)
 
|~型|~ImapClientクラスが参照するメンバ|h
|~型|~ImapClientクラスが参照するメンバ|h
~
|X509Certificate2Collection|ImapSslConnection.ClientCertificates|
|X509Certificate2Collection|ImapConnection.ClientCertificates|
~
|RemoteCertificateValidationCallback|ImapSslConnection.ServerCertificateValidationCallback|
|RemoteCertificateValidationCallback|ImapConnection.ServerCertificateValidationCallback|
~
|LocalCertificateSelectionCallback|ImapSslConnection.ClientCertificateSelectionCallback|
|RemoteCertificateValidationCallback|ImapConnection.ClientCertificateSelectionCallback|
 

        

        
 
以下は証明書の検証を行う簡単な例です。
以下は証明書の検証を行う簡単な例です。
 

        

        
343,13 343,15
 
using System.Net;
using System.Net;
 
using System.Net.Security;
using System.Net.Security;
 
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.X509Certificates;
-
using Smdn.Net.Imap4;
 
using Smdn.Net.Imap4.Client;
using Smdn.Net.Imap4.Client;
-
using Smdn.Net.Imap4.Protocol.Client;
 

        

        
 
public class ValidateServerCerts {
public class ValidateServerCerts {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
 
    // 証明書の検証を行うコールバックメソッドを指定
    // 証明書の検証を行うコールバックメソッドを指定
~
    ImapSslConnection.ServerCertificateValidationCallback += ValidateRemoteCertificate;
    ImapConnection.ServerCertificateValidationCallback += ValidateRemoteCertificate;
 

        

        
 
    using (var client = new ImapClient(new Uri("imaps://user@localhost/"))) {
    using (var client = new ImapClient(new Uri("imaps://user@localhost/"))) {
 
      client.Connect("pass");
      client.Connect("pass");
384,12 386,14
 
Imports System.Net
Imports System.Net
 
Imports System.Net.Security
Imports System.Net.Security
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
-
Imports Smdn.Net.Imap4
 
Imports Smdn.Net.Imap4.Client
Imports Smdn.Net.Imap4.Client
-
Imports Smdn.Net.Imap4.Protocol.Client
 

        

        
 
Public Class ValidateServerCerts
Public Class ValidateServerCerts
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
 
    ' 証明書の検証を行うコールバックメソッドを指定
    ' 証明書の検証を行うコールバックメソッドを指定
~
    ImapSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    ImapConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
    Using client As New ImapClient(New Uri("imaps://user@localhost/"))
    Using client As New ImapClient(New Uri("imaps://user@localhost/"))
 
      client.Connect("pass")
      client.Connect("pass")
425,87 429,7
 
***SSL/TLS接続のカスタマイズ [#sslcallback]
***SSL/TLS接続のカスタマイズ [#sslcallback]
 
(このドキュメントは作成中です)
(このドキュメントは作成中です)
 
SslStream以外の実装を使いたい場合や、より高度な検証が必要な場合など、SSL/TLS接続時にデフォルトの動作を変更してカスタマイズする場合は、UpgradeConnectionStreamCallbackデリゲートを使用してコールバックメソッドを指定してください。
SslStream以外の実装を使いたい場合や、より高度な検証が必要な場合など、SSL/TLS接続時にデフォルトの動作を変更してカスタマイズする場合は、UpgradeConnectionStreamCallbackデリゲートを使用してコールバックメソッドを指定してください。
~
コールバックメソッドはImapClient.Connect()メソッドの引数に指定してください。 実装例はImapSslConnection.CreateSslStreamメソッドを参照してください。
コールバックメソッドはImapClient.Connect()メソッドの引数に指定してください。 実装例はImapConnection.CreateSslStreamメソッドを参照してください。
+

          
+

          
+
**OAuth 2.0を使った認証 [#xoauth2]
+
GMailがサポートする[[SASL XOAUTH2 Mechanism:https://developers.google.com/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism]]を使って認証を行う場合は、以下の例のようにImapClient.Connect()メソッドの引数にXOAuth2Mechanismクラス(Smdn.Security.Authentication.Sasl.Client名前空間)のインスタンスを指定します。
+

          
+
#tabpage(codelang=cs,container-title=XOAUTH2による認証を行う例)
+
#code{{
+
using System;
+

          
+
using Smdn.Net.Imap4;
+
using Smdn.Net.Imap4.Client;
+
using Smdn.Security.Authentication.Sasl.Client;
+

          
+
public class XOAuth2Sample {
+
  public static void Main(string[] args)
+
  {
+
    using (var client = new ImapClient(new Uri("imaps://user@localhost/"))) {
+
      // ユーザー名とアクセストークンを指定してXOAuth2Mechanismのインスタンスを作成
+
      var user = "someuser@example.com";
+
      var accessToken = "vF9dft4qmTc2Nvb3RlckBhdHRhdmlzdGEuY29tCg==";
+

          
+
      using (var oauthMechanism = new XOAuth2Mechanism(user, accessToken)) {
+
        try {
+
          // パスワードの代わりにXOAuth2Mechanismのインスタンスを指定して接続
+
          client.Connect(oauthMechanism);
+
        }
+
        catch (ImapAuthenticationException) {
+
          // 認証に失敗した場合は、サーバーが返送してきたエラーメッセージを取得・表示する
+
          Console.WriteLine(oauthMechanism.LastErrorResults);
+
        }
+
      }
+
    }
+
  }
+
}
+
}}
+
#tabpage(codelang=vb)
+
#code{{
+
(準備中)
+
}}
+
#tabpage-end
+

          
+
XOAuth2Mechanismクラスは取得済みのアクセストークンを使用します。 XOAuth2Mechanismクラス自体にはアクセストークンの取得や更新を行う機能は実装していないため、必要に応じて他のライブラリを使用するなどしてください。
+

          
+
XOAuth2Mechanismクラスを継承してアクセストークンの取得や検証・更新の処理を組み込みたい場合は、以下のようにXOAuth2Mechanism.Initialize()メソッドをオーバーライドすることが出来ます。 XOAuth2Mechanism.Initialize()メソッドはImapClient.Connect()メソッドによる接続開始時(AUTHENTICATEコマンド送信の直前)に呼び出されます。
+

          
+
#tabpage(codelang=cs,container-title=アクセストークンの取得処理を追加する例)
+
#code{{
+
using System;
+

          
+
using Smdn.Net.Imap4;
+
using Smdn.Net.Imap4.Client;
+
using Smdn.Security.Authentication.Sasl.Client;
+

          
+
class XOAuth2Client : XOAuth2Mechanism {
+
  // Initializeメソッドをオーバーライドしてアクセストークンの取得処理を記述する
+
  public override void Initialize()
+
  {
+
    base.Initialize();
+

          
+
    User = "someuser@example.com";
+
    AccessToken = "vF9dft4qmTc2Nvb3RlckBhdHRhdmlzdGEuY29tCg=="; // 何らかの手段で取得したアクセストークンを想定
+
  }
+
}
+

          
+
public class XOAuth2Sample {
+
  public static void Main(string[] args)
+
  {
+
    using (var client = new ImapClient(new Uri("imaps://user@localhost/"))) {
+
      using (var oauthClient = new XOAuth2Client()) {
+
        client.Connect(oauthClient);
+
      }
+
    }
+
  }
+
}
+
}}
+
#tabpage(codelang=vb)
+
#code{{
+
(準備中)
+
}}
+
#tabpage-end
 

        

        
 

        

        
 
#hr
#hr
660,7 584,7
 
|Exists|メールボックスが存在するかどうかを表す値を返します。|
|Exists|メールボックスが存在するかどうかを表す値を返します。|
 
|Flags|メールボックスの属性を表すフラグを返します。|
|Flags|メールボックスの属性を表すフラグを返します。|
 
|IsUnselectable|メールボックスが選択不可とされているかどうかを表す値を返します。 値がtrueの場合、Open()などのメソッドでメールボックスを選択することはできません。 値がfalseの場合でも、選択できないか選択に失敗する可能性があります。|
|IsUnselectable|メールボックスが選択不可とされているかどうかを表す値を返します。 値がtrueの場合、Open()などのメソッドでメールボックスを選択することはできません。 値がfalseの場合でも、選択できないか選択に失敗する可能性があります。|
~
|IsOpen|メールボックスが現在開かれているかどうかを表す値を返します。 ImapMailboxInfo.FullNameとImapClient.OpenedMailbox.FullNameが同名であれば、trueとなります。|
|IsOpen|メールボックスが選択中であるかどうかを表す値を返します。|
 
|IsInbox|メールボックスがINBOXであるかどうかを表す値を返します。|
|IsInbox|メールボックスがINBOXであるかどうかを表す値を返します。|
 
|CanHaveChild|下位のメールボックスを作成できるか(メールボックスが階層構造を持つことができるか)どうかを表す値を返します。 値がfalseの場合、CreateChild()などのメソッドで下位のメールボックスを作成することはできません。|
|CanHaveChild|下位のメールボックスを作成できるか(メールボックスが階層構造を持つことができるか)どうかを表す値を返します。 値がfalseの場合、CreateChild()などのメソッドで下位のメールボックスを作成することはできません。|
 
|UnseenMessageCount|メールボックスにある未読のメッセージ数を返します。 ステータスを取得していない場合、0を返します。|
|UnseenMessageCount|メールボックスにある未読のメッセージ数を返します。 ステータスを取得していない場合、0を返します。|
728,7 652,6
 

        

        
 
|*ImapOpenedMailboxInfoクラスのプロパティ
|*ImapOpenedMailboxInfoクラスのプロパティ
 
|~プロパティ|~解説|h
|~プロパティ|~解説|h
+
|IsOpen|メールボックスが現在開かれているかどうかを表す値を返します。 インスタンスがImapClient.OpenedMailboxと同一であれば、trueとなります。|
 
|IsReadOnly|メールボックスを読み取り専用で選択したかどうかを表す値を返します。|
|IsReadOnly|メールボックスを読み取り専用で選択したかどうかを表す値を返します。|
 
|IsUidPersistent|メールボックス内の各メッセージに割り当てられているUIDが永続的かどうかを表す値を返します。|
|IsUidPersistent|メールボックス内の各メッセージに割り当てられているUIDが永続的かどうかを表す値を返します。|
 
|IsAllowedToCreateKeywords|メールボックス内の各メッセージに、ユーザ定義のキーワードを設定できるかどうかを表す値を返します。|
|IsAllowedToCreateKeywords|メールボックス内の各メッセージに、ユーザ定義のキーワードを設定できるかどうかを表す値を返します。|
843,7 766,6
 
|UidValidity|メッセージを取得した時点でのメールボックスのUIDVALIDITY値を返します。 UIDが永続的でない場合(ImapOpenedMailboxInfo.IsUidPersistentがfalseの場合)などは、0を返します。|
|UidValidity|メッセージを取得した時点でのメールボックスのUIDVALIDITY値を返します。 UIDが永続的でない場合(ImapOpenedMailboxInfo.IsUidPersistentがfalseの場合)などは、0を返します。|
 
|Url|メッセージをIMAP URLを返します。|
|Url|メッセージをIMAP URLを返します。|
 
|Mailbox|メッセージが属するメールボックスを表すインスタンスを返します。|
|Mailbox|メッセージが属するメールボックスを表すインスタンスを返します。|
+
|IsAvailable|メッセージが利用可能かどうかを表す値を返します。 インスタンスの取得元となったメールボックスが既に閉じられている場合、メッセージが移動または削除されている場合は、falseを返します。|
 
|IsDeleted|メッセージが完全に削除されているかどうかを表す値を返します。|
|IsDeleted|メッセージが完全に削除されているかどうかを表す値を返します。|
 
|IsAnswered|メッセージが返信済みかどうかを表す値を返します。 \Answeredフラグが設定されている場合trueを返します。|
|IsAnswered|メッセージが返信済みかどうかを表す値を返します。 \Answeredフラグが設定されている場合trueを返します。|
 
|IsDraft|メッセージが下書きかどうかを表す値を返します。 \Draftフラグが設定されている場合trueを返します。|
|IsDraft|メッセージが下書きかどうかを表す値を返します。 \Draftフラグが設定されている場合trueを返します。|
963,21 885,21
 
|Store(ImapStoreDataItem)|1つまたは複数のメッセージに対して、指定したフラグ・キーワードの追加/削除/置き換えを行います。|STORE|
|Store(ImapStoreDataItem)|1つまたは複数のメッセージに対して、指定したフラグ・キーワードの追加/削除/置き換えを行います。|STORE|
 
|MarkAsDeleted()|1つまたは複数のメッセージに削除フラグを設定します。|STORE|
|MarkAsDeleted()|1つまたは複数のメッセージに削除フラグを設定します。|STORE|
 
|MarkAsSeen()|1つまたは複数のメッセージを既読にします。|STORE|
|MarkAsSeen()|1つまたは複数のメッセージを既読にします。|STORE|
~
|Delete()|1つまたは複数のメッセージを完全に削除します。&br;サーバがUID EXPUNGEをサポートしていない場合、''既に削除フラグが設定されている他のメッセージも同時に削除されます''。|STORE+EXPUNGE/UID EXPUNGE|
|Delete()|1つまたは複数のメッセージを完全に削除します。&br;サーバがUID EXPUNGEをサポートしていない場合、''既に削除フラグが設定されている他のメッセージも同時に削除されます''。|STORE, EXPUNGE/UID EXPUNGE|
 
|CopyTo(ImapMailboxInfo)|{{
|CopyTo(ImapMailboxInfo)|{{
 
1つまたは複数のメッセージを、指定したメールボックスにコピーします。
1つまたは複数のメッセージを、指定したメールボックスにコピーします。
 
}}|{{
}}|{{
 
COPY (同一セッションの場合)
COPY (同一セッションの場合)
~
FETCH+APPEND (異なるセッションの場合)
FETCH, APPEND (異なるセッションの場合)
 
}}|
}}|
 
|CopyTo(string)&br;CopyTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスにコピーします。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY|
|CopyTo(string)&br;CopyTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスにコピーします。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY|
 
|MoveTo(ImapMailboxInfo)|{{
|MoveTo(ImapMailboxInfo)|{{
 
1つまたは複数のメッセージを、指定したメールボックスに移動します。
1つまたは複数のメッセージを、指定したメールボックスに移動します。
 
}}|{{
}}|{{
~
COPY+STORE/MOVE (同一セッションの場合)
COPY, STORE (同一セッションの場合)
~
FETCH+APPEND+STORE (異なるセッションの場合)
FETCH, APPEND, STORE (異なるセッションの場合)
 
}}|
}}|
~
|MoveTo(string)&br;MoveTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスに移動します。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY+STORE/MOVE|
|MoveTo(string)&br;MoveTo(string, bool)|1つまたは複数のメッセージを、指定した名前のメールボックスに移動します。 オプションで、メールボックスが存在しない場合に作成するかどうかを指定できます。|COPY, STORE|
 
|~メソッド|~解説|~対応するIMAPコマンド|f
|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
|*ImapMessageInfoクラスのメソッド
|*ImapMessageInfoクラスのメソッド
988,34 910,31
 
|~メソッド|~解説|~対応するIMAPコマンド|f
|~メソッド|~解説|~対応するIMAPコマンド|f
 

        

        
 
|*ImapOpenedMailboxInfoクラスのメソッド
|*ImapOpenedMailboxInfoクラスのメソッド
~
|~メソッド|~解説|>|~対応するIMAPコマンド|h
|~メソッド|~解説|~対応するIMAPコマンド&br;(同一セッションの場合)|~対応するIMAPコマンド&br;(異なるセッションの場合)|h
+
|~|~|~同一セッションの場合|~異なるセッションの場合|h
 
|{{
|{{
 
CopyMessagesTo(ImapMailboxInfo)
CopyMessagesTo(ImapMailboxInfo)
~
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスにコピーします。|COPY|FETCH, APPEND|
 
|{{
|{{
 
CopyMessagesTo(ImapMailboxInfo, long, params long[])
CopyMessagesTo(ImapMailboxInfo, long, params long[])
~
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスにコピーします。|COPY|FETCH+APPEND|
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスにコピーします。|COPY|FETCH, APPEND|
 
|{{
|{{
 
CopyMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
CopyMessagesTo(ImapSearchCriteria, ImapMailboxInfo)
 
CopyMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
CopyMessagesTo(ImapSearchCriteria, Encoding, ImapMailboxInfo)
~
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスにコピーします。|SEARCH+COPY|SEARCH+FETCH+APPEND|
}}|メールボックスにあるメッセージのうち、指定した検索条件にマッチするメッセージを指定したメールボックスにコピーします。|SEARCH, COPY|SEARCH, FETCH, APPEND|
 
|{{
|{{
 
MoveMessagesTo(ImapMailboxInfo)
MoveMessagesTo(ImapMailboxInfo)
~
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
}}|メールボックスにあるすべてのメッセージを、指定したメールボックスに移動します。|COPY, STORE|FETCH, APPEND, STORE|
 
|{{
|{{
 
MoveMessagesTo(ImapMailboxInfo, long, params long[])
MoveMessagesTo(ImapMailboxInfo, long, params long[])
~
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスに移動します。|COPY+STORE / MOVE|FETCH+APPEND+STORE|
}}|メールボックスにあるメッセージのうち、指定したUIDを持つ1つ以上のメッセージを指定したメールボックスに移動します。|COPY, STORE|FETCH, APPEND, STORE|
 
|{{
|{{
 
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, FETCH, APPEND, STORE|
~
|~メソッド|~解説|~同一セッションの場合|~異なるセッションの場合|f
|~メソッド|~解説|~対応するIMAPコマンド&br;(同一セッションの場合)|~対応するIMAPコマンド&br;(異なるセッションの場合)|f
+
|~|~|>|~対応するIMAPコマンド|f
 

        

        
 
:メッセージの移動|IMAPにはメッセージの移動を行うコマンドが存在しないため、代わりにコピーと削除フラグの設定を行うよう実装しています。 そのため、移動を行っても移動元のメッセージに削除フラグが設定されるのみですぐには削除されません。
:メッセージの移動|IMAPにはメッセージの移動を行うコマンドが存在しないため、代わりにコピーと削除フラグの設定を行うよう実装しています。 そのため、移動を行っても移動元のメッセージに削除フラグが設定されるのみですぐには削除されません。
 
これらのメッセージはImapOpenedMailboxInfo.Close()メソッドやImapClient.Logout()メソッドを呼び出した時点で完全に削除されますが、すぐに削除したい場合はDelete()メソッドやImapOpenedMailboxInfo.Expunge()メソッドを呼び出すようにしてください。
これらのメッセージはImapOpenedMailboxInfo.Close()メソッドやImapClient.Logout()メソッドを呼び出した時点で完全に削除されますが、すぐに削除したい場合はDelete()メソッドやImapOpenedMailboxInfo.Expunge()メソッドを呼び出すようにしてください。
+
なお、サーバーが&urn2url(urn:ietf:rfc:6851);をサポートしている場合は、同一セッションでのメッセージの移動にMOVEコマンドを使用します。 この場合、移動元のメッセージは即座に削除されます。
 
:コピー・移動先のメールボックス|コピー・移動先のメールボックスをImapMailboxInfoで指定する場合、コピー・移動元とコピー・移動先のImapMailboxInfoによって動作が異なります。
:コピー・移動先のメールボックス|コピー・移動先のメールボックスをImapMailboxInfoで指定する場合、コピー・移動元とコピー・移動先のImapMailboxInfoによって動作が異なります。
 
ImapMailboxInfoが同一セッションのものの場合は、サーバ上でコピー・移動が行われます。
ImapMailboxInfoが同一セッションのものの場合は、サーバ上でコピー・移動が行われます。
 
ImapMailboxInfoが異なるセッションのものの場合は、一旦ダウンロードしてから追加先のメールボックスにアップロードします。
ImapMailboxInfoが異なるセッションのものの場合は、一旦ダウンロードしてから追加先のメールボックスにアップロードします。
1098,10 1017,10
 
|Smdn.Net.Imap4|ImapAuthenticationException|認証に失敗した&br;試行できる認証メカニズムが無い|ImapClient.Connect()|
|Smdn.Net.Imap4|ImapAuthenticationException|認証に失敗した&br;試行できる認証メカニズムが無い|ImapClient.Connect()|
 
|Smdn.Net.Imap4|ImapErrorResponseException|サーバがエラー応答を返した|ImapClientおよび各クラスのメソッド・プロパティ|
|Smdn.Net.Imap4|ImapErrorResponseException|サーバがエラー応答を返した|ImapClientおよび各クラスのメソッド・プロパティ|
 
|Smdn.Net.Imap4|ImapProtocolViolationException|プロトコル上不正な操作を行おうとした|ImapClientおよび各クラスのメソッド・プロパティ|
|Smdn.Net.Imap4|ImapProtocolViolationException|プロトコル上不正な操作を行おうとした|ImapClientおよび各クラスのメソッド・プロパティ|
-
|Smdn.Net.Imap4.Client|ImapMailboxClosedException|メールボックスが選択されていない、もしくは既に閉じてる状態で操作を行おうとした|ImapOpenedMailboxInfoクラス・ImapMessageInfoクラスの各メソッド・プロパティ|
-
|Smdn.Net.Imap4.Client|ImapMessageDeletedException|削除マーク済み(ImapMessageInfo.IsMarkedAsDeletedがtrue)のメッセージに対して操作を行おうとした|ImapMessageInfoクラスの各メソッド・プロパティ|
 
|Smdn.Net.Imap4.Client|ImapMailboxNotFoundException|指定された名前のメールボックスが見つからない|ImapClient.GetMailbox()&br;ImapMessageInfo.CopyTo()など|
|Smdn.Net.Imap4.Client|ImapMailboxNotFoundException|指定された名前のメールボックスが見つからない|ImapClient.GetMailbox()&br;ImapMessageInfo.CopyTo()など|
 
|Smdn.Net.Imap4.Client|ImapMessageNotFoundException|指定されたUIDもしくは通番を持つメッセージが存在しない|ImapOpenedMailboxInfo.GetMessageByUid()&br;ImapOpenedMailboxInfo.GetMessageBySequence()|
|Smdn.Net.Imap4.Client|ImapMessageNotFoundException|指定されたUIDもしくは通番を持つメッセージが存在しない|ImapOpenedMailboxInfo.GetMessageByUid()&br;ImapOpenedMailboxInfo.GetMessageBySequence()|
+
|Smdn.Net.Imap4.Client|ImapUnavailableException|既に閉じたメールボックス、既に削除・移動したメッセージや取得元のメールボックスが既に閉じているメッセージに対して操作を行おうとした|ImapOpenedMailboxInfoクラス・ImapMessageInfoクラスの各メソッド・プロパティ|
+
|Smdn.Net.Imap4.Client|ImapMessageVanishedException|他のクライアントによって削除・移動されたことにより該当するメッセージが消滅した|ImapMessageInfoクラスの各プロパティ、ImapMessageInfo.Open*(),ImapMessageInfo.Read*()などのメソッド|
 
|System|InvalidOperationException|切断された状態(ImapClient.IsConnectedがfalse)で操作を行おうとした&br;非同期接続中に新たに接続を開始しようとした|ImapClientおよび各クラスのメソッド・プロパティ|
|System|InvalidOperationException|切断された状態(ImapClient.IsConnectedがfalse)で操作を行おうとした&br;非同期接続中に新たに接続を開始しようとした|ImapClientおよび各クラスのメソッド・プロパティ|
 
|System|TimeoutException|ImapClient.Timeout, SendTimeout, ReceiveTimeoutプロパティで指定されている時間内に操作が完了しなかった|ImapClientおよび各クラスのメソッド・プロパティ|
|System|TimeoutException|ImapClient.Timeout, SendTimeout, ReceiveTimeoutプロパティで指定されている時間内に操作が完了しなかった|ImapClientおよび各クラスのメソッド・プロパティ|
 
|System|ArgumentException&br;および派生クラス|nullや値域外の値など、メソッド呼び出し時の引数が不正な場合|ImapClientおよび各クラスのメソッド・プロパティ|
|System|ArgumentException&br;および派生クラス|nullや値域外の値など、メソッド呼び出し時の引数が不正な場合|ImapClientおよび各クラスのメソッド・プロパティ|
1118,8 1037,8
 
----Smdn.Net.Imap4.ImapErrorResponseException
----Smdn.Net.Imap4.ImapErrorResponseException
 
-----Smdn.Net.Imap4.ImapAuthenticationException
-----Smdn.Net.Imap4.ImapAuthenticationException
 
----Smdn.Net.Imap4.ImapProtocolViolationException
----Smdn.Net.Imap4.ImapProtocolViolationException
~
----Smdn.Net.Imap4.Client.ImapMessageVanishedException
-----Smdn.Net.Imap4.Client.ImapMailboxClosedException
~
----Smdn.Net.Imap4.Client.ImapUnavailableException
-----Smdn.Net.Imap4.Client.ImapMessageDeletedException
 
---Smdn.Net.Imap4.Client.ImapMailboxNotFoundException
---Smdn.Net.Imap4.Client.ImapMailboxNotFoundException
 
---Smdn.Net.Imap4.Client.ImapMessageNotFoundException
---Smdn.Net.Imap4.Client.ImapMessageNotFoundException
 

        

        
1303,11 1222,12
 

        

        
 
using Smdn.Net.Imap4;
using Smdn.Net.Imap4;
 
using Smdn.Net.Imap4.Client;
using Smdn.Net.Imap4.Client;
-
using Smdn.Net.Imap4.Protocol.Client;
 

        

        
 
class Sample {
class Sample {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
~
    ImapSslConnection.ServerCertificateValidationCallback += delegate {
    ImapConnection.ServerCertificateValidationCallback += delegate {
 
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
 
      return true;
      return true;
 
    };
    };
1337,10 1257,11
 

        

        
 
Imports Smdn.Net.Imap4
Imports Smdn.Net.Imap4
 
Imports Smdn.Net.Imap4.Client
Imports Smdn.Net.Imap4.Client
-
Imports Smdn.Net.Imap4.Protocol.Client
 

        

        
 
Class Sample
Class Sample
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    ImapSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    ImapConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
    ' Gmailのアカウントに接続
    ' Gmailのアカウントに接続
 
    Using client As New ImapClient(New Uri("imaps://user@imap.gmail.com/"))
    Using client As New ImapClient(New Uri("imaps://user@imap.gmail.com/"))
1510,11 1431,11
 
class Sample {
class Sample {
 
  public static void Main()
  public static void Main()
 
  {
  {
~
    ImapSslConnection.ServerCertificateValidationCallback += delegate {
    ImapConnection.ServerCertificateValidationCallback += delegate {
 
      return true;
      return true;
 
    };
    };
 

        

        
~
    using (var session = new ImapSession("imap.gmail.com", 993, ImapSslConnection.CreateSslStream)) {
    using (var session = new ImapSession("imap.gmail.com", 993, ImapConnection.CreateSslStream)) {
 
      var cred = new NetworkCredential("user", "pass");
      var cred = new NetworkCredential("user", "pass");
 

        

        
 
      if (session.Login(cred).Failed) {
      if (session.Login(cred).Failed) {

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

current previous
63,17 63,19
 
|&urn2url(urn:ietf:rfc:5466,anchor-text);|FILTERS|&color(red){not tested};||
|&urn2url(urn:ietf:rfc:5466,anchor-text);|FILTERS|&color(red){not tested};||
 
|&urn2url(urn:ietf:rfc:5524,anchor-text);|URLAUTH=BINARY|&color(gray){not implemented};||
|&urn2url(urn:ietf:rfc:5524,anchor-text);|URLAUTH=BINARY|&color(gray){not implemented};||
 
|&urn2url(urn:ietf:rfc:5530,anchor-text);|-|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:5530,anchor-text);|-|&color(green){implemented};||
~
|&urn2url(urn:ietf:rfc:5550,anchor-text);|URL-PARTIAL|&color(gray){not implemented};||
|&urn2url(urn:ietf:rfc:5738,anchor-text);|UTF8=ACCEPT|&color(gray){not implemented};||
-
|&urn2url(urn:ietf:rfc:5738,anchor-text);|UTF8=ALL|&color(gray){not implemented};||
-
|&urn2url(urn:ietf:rfc:5738,anchor-text);|UTF8=APPEND|&color(gray){not implemented};||
-
|&urn2url(urn:ietf:rfc:5738,anchor-text);|UTF8=ONLY|&color(gray){not implemented};||
-
|&urn2url(urn:ietf:rfc:5738,anchor-text);|UTF8=USER|&color(gray){not implemented};||
 
|&urn2url(urn:ietf:rfc:5819,anchor-text);|LIST-STATUS|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:5819,anchor-text);|LIST-STATUS|&color(green){implemented};||
 
|&urn2url(urn:ietf:rfc:5957,anchor-text);|SORT=DISPLAY|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:5957,anchor-text);|SORT=DISPLAY|&color(green){implemented};||
~
|&urn2url(urn:ietf:rfc:6154,anchor-text);|CREATE-SPECIAL-USE|&color(red){not tested};||
|&urn2url(urn:ietf:id:ietf-morg-list-specialuse-06,anchor-text);|CREATE-SPECIAL-USE|&color(red){not tested};||
~
|&urn2url(urn:ietf:rfc:6154,anchor-text);|SPECIAL-USE|&color(orange){partially implemented};||
|&urn2url(urn:ietf:id:ietf-morg-fuzzy-search-03,anchor-text);|-|&color(gray){not implemented};||
~
|&urn2url(urn:ietf:rfc:6203,anchor-text);|SEARCH=FUZZY|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-morg-multimailbox-search-05,anchor-text);|-|&color(gray){not implemented};||
~
|&urn2url(urn:ietf:rfc:6237,anchor-text);|MULTISEARCH|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-morg-inthread-00,anchor-text);|SEARCH=INTHREAD|&color(green){implemented};||
~
|&urn2url(urn:ietf:rfc:6785,anchor-text);|IMAPSISEVE=|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-morg-inthread-00,anchor-text);|THREAD=REFS|&color(green){implemented};||
~
|&urn2url(urn:ietf:rfc:6851,anchor-text);|MOVE|&color(green){implemented};||
|Gimap|XLIST|&color(green){implemented};||
+
|&urn2url(urn:ietf:rfc:6855,anchor-text);|UTF8=ACCEPT|&color(gray){not implemented};||
+
|&urn2url(urn:ietf:rfc:6855,anchor-text);|UTF8=ONLY|&color(gray){not implemented};||
 
|RFC|capability name|status|note|f
|RFC|capability name|status|note|f
 

        

        
 
**commands
**commands
145,8 147,8
 
|SETMETADATA|&urn2url(urn:ietf:rfc:5464,#4.3,short);|&color(red){not tested};||
|SETMETADATA|&urn2url(urn:ietf:rfc:5464,#4.3,short);|&color(red){not tested};||
 
|NOTIFY|&urn2url(urn:ietf:rfc:5465,#3.1,short);|&color(gray){not implemented};||
|NOTIFY|&urn2url(urn:ietf:rfc:5465,#3.1,short);|&color(gray){not implemented};||
 
|LIST with STATUS return option|&urn2url(urn:ietf:rfc:5819,#2,short);|&color(green){implemented};||
|LIST with STATUS return option|&urn2url(urn:ietf:rfc:5819,#2,short);|&color(green){implemented};||
~
|CREATE with special-use flags|&urn2url(urn:ietf:rfc:6154,#3,short);|&color(red){not tested};||
|CREATE with special-use flags|&urn2url(urn:ietf:id:ietf-morg-list-specialuse-06,anchor-text);|&color(red){not tested};||
~
|MOVE|&urn2url(urn:ietf:rfc:6851,#3.1,short);|&color(green){implemented};||
|XLIST (Gimap)|-|&color(green){implemented};||
 
|command|RFC|status|note|f
|command|RFC|status|note|f
 

        

        
 
:Modified UTF-7対応&sub{*1};|メールボックス名に非ASCII文字を含む場合、自動的にModified UTF-7に変換します。
:Modified UTF-7対応&sub{*1};|メールボックス名に非ASCII文字を含む場合、自動的にModified UTF-7に変換します。
212,8 214,6
 
|OVERQUOTA|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
|OVERQUOTA|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
 
|ALREADYEXISTS|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
|ALREADYEXISTS|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
 
|NONEXISTENT|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
|NONEXISTENT|&urn2url(urn:ietf:rfc:5530,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
+
|USERATTR|&urn2url(urn:ietf:rfc:6154,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
+
|DOWNGRADED|&urn2url(urn:ietf:rfc:6858,short);|&color(orange){partially implemented};|通常のレスポンスと同様&sub{*1};に扱います。|
 
|response code|RFC|status|note|f
|response code|RFC|status|note|f
 

        

        
 
:通常のレスポンスと同様&sub{*1};|そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。
:通常のレスポンスと同様&sub{*1};|そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。

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

current previous
8,7 8,7
 
*ダウンロード
*ダウンロード
 
本ライブラリはMIT X11ライセンスでのリリースとなります。
本ライブラリはMIT X11ライセンスでのリリースとなります。
 

        

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

        

        
83,10 83,8
 

        

        
 
*動作状況
*動作状況
 
以下の環境で動作することを確認済みです。
以下の環境で動作することを確認済みです。
+
-.NET Framework 4.5
 
-.NET Framework 4
-.NET Framework 4
~
-.NET Framework 3.5 SP 1
-.NET Framework 3.5
+
-Mono 3.0.12
 
-Mono 2.11.3
-Mono 2.11.3
 
-Mono 2.10.8
-Mono 2.10.8
 
-Mono 2.8.2
-Mono 2.8.2

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

current previous
10,7 10,6
 
-開発版
-開発版
 
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
 
-0.3x
-0.3x
+
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.35.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.34.tar.bz2}
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.34.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.33.tar.bz2}
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.33.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.32.tar.bz2}
--${smdncms:distfilelink,../Smdn.Formats.Mime-0.32.tar.bz2}
33,21 32,6
 
---[[works/tools/junk/TundereBird]]に含まれているものを使ってください
---[[works/tools/junk/TundereBird]]に含まれているものを使ってください
 

        

        
 
**ビルド済みパッケージ
**ビルド済みパッケージ
+
|*0.35 (2013-07-15)
+
|~種類|~パッケージ|h
+
|~通常版|{{
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx4.5.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx4.0.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx3.5.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx2.0.zip,.NET 2.1}
+
}}|
+
|~単一アセンブリ版&sub{*1};|{{
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx4.5-combined.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx4.0-combined.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx3.5-combined.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Formats.Mime-0.35-netfx2.0-combined.zip,.NET 2.1}
+
}}|
+

          
 
|*0.34 (2013-02-07)
|*0.34 (2013-02-07)
 
|~種類|~パッケージ|h
|~種類|~パッケージ|h
 
|~通常版|{{
|~通常版|{{
128,12 112,6
 
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
 

        

        
 
*変更履歴
*変更履歴
+
**0.35 (2013-07-15)
+
-修正・改善
+
--ファイルへの上書きを行う場合に以前の内容が残ったままとなる可能性があったのを修正
+
--キャッシュされた長さ0の配列を使用するように修正
+
--List<>およびDictionary<,>が確保する初期サイズが必要最低限となるように修正
+

          
 
**0.34 (2013-02-07)
**0.34 (2013-02-07)
 
-修正・改善
-修正・改善
 
--UUDecodingStreamのコンストラクタでleaveStreamOpenに指定した値が反映されない不具合を修正
--UUDecodingStreamのコンストラクタでleaveStreamOpenに指定した値が反映されない不具合を修正

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

current previous
8,7 8,6
 

        

        
 
**ソースコード
**ソースコード
 
-1.1x
-1.1x
+
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.14.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.14.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.13.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.13.tar.bz2}
 
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.12.tar.bz2}
--${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.12.tar.bz2}
39,21 38,6
 
1.04までは[[works/libs/Smdn.Net.Pop3.WebClients]]のソースコードも含まれています。
1.04までは[[works/libs/Smdn.Net.Pop3.WebClients]]のソースコードも含まれています。
 

        

        
 
**ビルド済みパッケージ
**ビルド済みパッケージ
+
|*1.15 (2013-07-15)
+
|~種類|~パッケージ|h
+
|~通常版|{{
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx4.5.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx4.0.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx3.5.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx2.0.zip,.NET 2.x}
+
}}|
+
|~単一アセンブリ版&sub{*1};|{{
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx4.5-combined.zip,.NET 4.5}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx4.0-combined.zip,.NET 4}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx3.5-combined.zip,.NET 3.5}
+
${smdncms:distfilelink,../Smdn.Net.Pop3.Client-1.15-netfx2.0-combined.zip,.NET 2.x}
+
}}|
+

          
 
|*1.14 (2013-02-07)
|*1.14 (2013-02-07)
 
|~種類|~パッケージ|h
|~種類|~パッケージ|h
 
|~通常版|{{
|~通常版|{{
195,42 179,30
 
:単一アセンブリ版&sup{*1};|すべてのファイルを一つのアセンブリにまとめたものです。 [[works/libs/Smdn.Net.Imap4.Client]]や[[works/libs/Smdn.Formats.Mime]]と組み合わせて使用する場合は、型名が衝突するため通常版を使用してください。 詳しくは[[ドキュメントのアセンブリ構成に関する解説>works/libs/Smdn.Net.Pop3.Client/docs#assemblies]]を参照してください。
:単一アセンブリ版&sup{*1};|すべてのファイルを一つのアセンブリにまとめたものです。 [[works/libs/Smdn.Net.Imap4.Client]]や[[works/libs/Smdn.Formats.Mime]]と組み合わせて使用する場合は、型名が衝突するため通常版を使用してください。 詳しくは[[ドキュメントのアセンブリ構成に関する解説>works/libs/Smdn.Net.Pop3.Client/docs#assemblies]]を参照してください。
 
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
:ビルド設定等|コンパイラにMono gmcs/dmcsを使用、オプションに/debug- /optimize+ /define:TRACEを指定してビルドしています。
 

        

        
~
*変更履歴 [#changes]
*変更履歴
~
**1.15 (2013-07-15) [#changes_v1.15]
**1.14 (2013-02-07)
+
-機能追加
+
--[[SASL XOAUTH2 Mechanism:https://developers.google.com/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism]]をサポート
+
-修正・改善
+
--ファイルへの上書きを行う場合に以前の内容が残ったままとなる可能性があったのを修正
+
--キャッシュされた長さ0の配列を使用するように修正
+
--List<>およびDictionary<,>が確保する初期サイズが必要最低限となるように修正
+
--その他内部実装のパフォーマンス改善
+
--PopClient
+
---Smdn.Net.Pop3.Protocol.Client.ImapConnectionクラスのプロパティClientCertificates, ServerCertificateValidationCallback, ClientCertificateSelectionCallbackをSmdn.Net.Pop3.Client.ImapSslConnectionに移動
+
---PopClient.GetMessages()等について、LISTとUIDLが異なる数のレスポンスを返してきた場合でも問題なく動作するように修正
+

          
+
**1.14 (2013-02-07) [#changes_v1.14]
 
-修正・改善
-修正・改善
 
--PopClient, PopClientProfile等のUserNameに'@'を含むユーザー名を指定できない不具合を修正
--PopClient, PopClientProfile等のUserNameに'@'を含むユーザー名を指定できない不具合を修正
 

        

        
~
**1.13 (2012-10-08) [#changes_v1.13]
**1.13 (2012-10-08)
 
-修正・改善
-修正・改善
 
--PopClient.DownloadAllMessagesToDirectory()メソッドについて、指定されたディレクトリが存在しない場合は、ディレクトリを作成してからダウンロードするように変更
--PopClient.DownloadAllMessagesToDirectory()メソッドについて、指定されたディレクトリが存在しない場合は、ディレクトリを作成してからダウンロードするように変更
 
--PopClient.Download*MessagesTo*()メソッドについて、ダウンロードしたファイルを表すFileInfoを返すようにした
--PopClient.Download*MessagesTo*()メソッドについて、ダウンロードしたファイルを表すFileInfoを返すようにした
 
--Mono 2.6関連のワークアラウンドを削除
--Mono 2.6関連のワークアラウンドを削除
 
--上位ライブラリの不具合修正
--上位ライブラリの不具合修正
 

        

        
~
**1.12 (2012-10-01) [#changes_v1.12]
**1.12 (2012-10-01)
 
-修正・改善
-修正・改善
 
--上位ライブラリのインターフェイス変更にあわせて実装を修正
--上位ライブラリのインターフェイス変更にあわせて実装を修正
 

        

        
~
**1.11 (2012-09-24) [#changes_v1.11]
**1.11 (2012-09-24)
 
-機能追加
-機能追加
 
--PopClientクラスにインスタンスを生成せずにPOP操作を行うための静的メソッドGetMessageCount(), Download*As*(), Download*ToFile()等を追加
--PopClientクラスにインスタンスを生成せずにPOP操作を行うための静的メソッドGetMessageCount(), Download*As*(), Download*ToFile()等を追加
 
--PopClientクラスにDownloadAllMessagesAs*(), DownloadAllMessagesToDirectory(), DownloadAllMessagesToFiles()を追加
--PopClientクラスにDownloadAllMessagesAs*(), DownloadAllMessagesToDirectory(), DownloadAllMessagesToFiles()を追加
 
--PopClient.ConnectAsync()を追加
--PopClient.ConnectAsync()を追加
 
--.NET 4.5用のcsprojファイルを追加
--.NET 4.5用のcsprojファイルを追加
 

        

        
~
**1.10 (2011-02-18) [#changes_v1.11]
**1.10 (2011-02-18)
 
主にUnique-IDまわりの実装の改善と細かい修正等。
主にUnique-IDまわりの実装の改善と細かい修正等。
 

        

        
 
-機能追加
-機能追加
245,14 217,14
 
--WebClients
--WebClients
 
---ソースパッケージを分離、[[works/libs/Smdn.Net.Pop3.WebClients]]として個別にリリース
---ソースパッケージを分離、[[works/libs/Smdn.Net.Pop3.WebClients]]として個別にリリース
 

        

        
~
**1.04 (2011-02-03) [#changes_v1.04]
**1.04 (2011-02-03)
 
主に細かい修正等。
主に細かい修正等。
 

        

        
 
-修正・改善
-修正・改善
 
--PopClient
--PopClient
 
---PopClient.SendTimeout, PopClient.ReceiveTimeoutにTimeout.Infinite(-1)を設定した場合、0ではなく-1を返すように修正
---PopClient.SendTimeout, PopClient.ReceiveTimeoutにTimeout.Infinite(-1)を設定した場合、0ではなく-1を返すように修正
 

        

        
~
**1.03 (2011-01-22) [#changes_v1.03]
**1.03 (2011-01-22)
 
主にバグ修正。
主にバグ修正。
 

        

        
 
-機能追加
-機能追加
261,7 233,7
 
-修正・改善
-修正・改善
 
--status indicatorの直後にSPが1文字だけ続くレスポンスを受信した場合にinternal errorとなる不具合を修正 (バグ報告ありがとうございました)
--status indicatorの直後にSPが1文字だけ続くレスポンスを受信した場合にinternal errorとなる不具合を修正 (バグ報告ありがとうございました)
 

        

        
~
**1.02 (2011-01-08) [#changes_v1.02]
**1.02 (2011-01-08)
 
主に機能追加と細かい修正等。
主に機能追加と細かい修正等。
 

        

        
 
-機能追加
-機能追加
274,7 246,7
 
--シンボルTRACEを無効にするとビルドエラーとなる箇所があったのを修正
--シンボルTRACEを無効にするとビルドエラーとなる箇所があったのを修正
 
--その他内部実装の細かい修正と若干のパフォーマンス改善
--その他内部実装の細かい修正と若干のパフォーマンス改善
 

        

        
~
**1.01 (2010-12-11) [#changes_v1.01]
**1.01 (2010-12-11)
 
主にバグ修正。
主にバグ修正。
 

        

        
 
-機能追加
-機能追加
287,7 259,7
 
---PopMessageInfo.OpenRead等が返すStreamに対してシークして上書きを行おうとするとLength, Positionが正しくない値を返す場合がある不具合を修正
---PopMessageInfo.OpenRead等が返すStreamに対してシークして上書きを行おうとするとLength, Positionが正しくない値を返す場合がある不具合を修正
 
---PopMessageInfo.OpenRead等が返すStreamを閉じた場合、CanRead, CanWrite, CanSeek, CanTimeoutはObjectDisposedExceptionをスローせず常にfalseを返すように修正 (Streamの仕様に合わせた修正)
---PopMessageInfo.OpenRead等が返すStreamを閉じた場合、CanRead, CanWrite, CanSeek, CanTimeoutはObjectDisposedExceptionをスローせず常にfalseを返すように修正 (Streamの仕様に合わせた修正)
 

        

        
~
**1.00 (2010-05-15) [#changes_v1.00]
**1.00 (2010-05-15)
 
主に匿名・平文での認証に関する機能の強化、不具合と実装の細かい修正等。
主に匿名・平文での認証に関する機能の強化、不具合と実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
321,7 293,7
 
---PopWebRequest.UsingSaslMechanismsに"ANONYMOUS"が含まれていてもANONYMOUS認証は試行せずに無視するように修正
---PopWebRequest.UsingSaslMechanismsに"ANONYMOUS"が含まれていてもANONYMOUS認証は試行せずに無視するように修正
 
---PopWebRequestDefaults.AnonymousTokenを廃止、常にリクエストURIのユーザ名(指定されていない場合は'anonymous@')を使うように変更
---PopWebRequestDefaults.AnonymousTokenを廃止、常にリクエストURIのユーザ名(指定されていない場合は'anonymous@')を使うように変更
 

        

        
~
**0.92 (2010-04-25) [#changes_v0.92]
**0.92 (2010-04-25)
 
.NET Frameworkの各バージョン向けビルドのサポート、不具合と実装の細かい修正等。
.NET Frameworkの各バージョン向けビルドのサポート、不具合と実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
344,7 316,7
 
---接続されていない状態でPopClient.GetMessage()を呼ぶとPopProtocolViolationExceptionではなくArgumentOutOfRangeExceptionがスローされる不具合を修正
---接続されていない状態でPopClient.GetMessage()を呼ぶとPopProtocolViolationExceptionではなくArgumentOutOfRangeExceptionがスローされる不具合を修正
 
---既に接続されている状態でPopClient.Connect()を呼ぶと新たにセッションが作成されてしまう不具合を修正、接続中の場合はPopProtocolViolationExceptionをスローするようにした
---既に接続されている状態でPopClient.Connect()を呼ぶと新たにセッションが作成されてしまう不具合を修正、接続中の場合はPopProtocolViolationExceptionをスローするようにした
 

        

        
~
**0.91 (2010-04-18) [#changes_v0.91]
**0.91 (2010-04-18)
 
主に若干のパフォーマンス改善、実装の細かい修正等。
主に若干のパフォーマンス改善、実装の細かい修正等。
 

        

        
 
-機能追加
-機能追加
363,7 335,7
 
---PopMessageInfo.Save()がArgumentExceptionをスローする場合、空のファイルが作成されないようにした
---PopMessageInfo.Save()がArgumentExceptionをスローする場合、空のファイルが作成されないようにした
 
---接続していない状態でPopClient.MessageCountおよびPopClient.TotalSizeプロパティを参照しようとした場合、PopProtocolViolationExceptionをスローするようにした
---接続していない状態でPopClient.MessageCountおよびPopClient.TotalSizeプロパティを参照しようとした場合、PopProtocolViolationExceptionをスローするようにした
 

        

        
~
**0.90 (2010-04-04) [#changes_v0.90]
**0.90 (2010-04-04)
 
主にPopClientの機能強化・テストケースの追加と細かい修正等。
主にPopClientの機能強化・テストケースの追加と細かい修正等。
 

        

        
 
-機能追加
-機能追加
399,7 371,7
 
---PopMessageInfo.OpenText()のデフォルトエンコーディングをEncoding.DefaultからISO-8859-1に変更
---PopMessageInfo.OpenText()のデフォルトエンコーディングをEncoding.DefaultからISO-8859-1に変更
 
---PopMessageInfo.IsMarkedAsDeletedがtrueの場合にPopMessageInfo.MarkAsDeleted()を呼んだ場合、DELEを再発行せず何もしないように修正
---PopMessageInfo.IsMarkedAsDeletedがtrueの場合にPopMessageInfo.MarkAsDeleted()を呼んだ場合、DELEを再発行せず何もしないように修正
 

        

        
~
**0.29 (2010-03-22) [#changes_v0.29]
**0.29 (2010-03-22)
 
主にSmdn.Net.Pop3.WebClientsのアセンブリ化
主にSmdn.Net.Pop3.WebClientsのアセンブリ化
 

        

        
 
-機能追加
-機能追加
413,21 385,21
 
--WebClients
--WebClients
 
---実装をアセンブリSmdn.Net.Pop3.WebClientsとして分離 (アプリケーション構成ファイルを使用している場合は、アセンブリ名の変更が必要)
---実装をアセンブリSmdn.Net.Pop3.WebClientsとして分離 (アプリケーション構成ファイルを使用している場合は、アセンブリ名の変更が必要)
 

        

        
~
**0.28 (2010-03-15) [#changes_v0.28]
**0.28 (2010-03-15)
 
-修正・改善
-修正・改善
 
--既にTLS/SSLでの接続が確立している状態でもSTLSを発行してしまう不具合を修正
--既にTLS/SSLでの接続が確立している状態でもSTLSを発行してしまう不具合を修正
 
--PopClient
--PopClient
 
---エラーレスポンスの場合にPopExceptionをスローしていた箇所をPopErrorResponseExceptionをスローするように変更
---エラーレスポンスの場合にPopExceptionをスローしていた箇所をPopErrorResponseExceptionをスローするように変更
 
---InvalidOperationExceptionをスローしていた箇所をPopProtocolViolationExceptionをスローするように変更
---InvalidOperationExceptionをスローしていた箇所をPopProtocolViolationExceptionをスローするように変更
 

        

        
~
**0.27 (2010-02-28) [#changes_v0.27]
**0.27 (2010-02-28)
 
主に新しいクライアント実装PopClientの追加とそれに付随する変更。
主に新しいクライアント実装PopClientの追加とそれに付随する変更。
 

        

        
 
-機能追加
-機能追加
 
--新しいクライアント実装PopClientをSmdn.Net.Pop3.Client名前空間に追加(ただしインターフェイスは未確定、実装は不完全)
--新しいクライアント実装PopClientをSmdn.Net.Pop3.Client名前空間に追加(ただしインターフェイスは未確定、実装は不完全)
 
--PopUriBuilderを追加
--PopUriBuilderを追加
 

        

        
~
**0.26 (2010-02-22) [#changes_v0.26]
**0.26 (2010-02-22)
 
主にライブラリ本体と下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
主にライブラリ本体と下位ライブラリの実装改善、新しいクライアント実装を追加するための下準備。
 

        

        
 
-修正・改善
-修正・改善
447,7 419,7
 
|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|
|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|
|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 (2010-02-15) [#changes_v0.25]
**0.25 (2010-02-15)
 
主にアプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
主にアプリケーション構成ファイルでの設定のサポート、パフォーマンスと.NET Frameworkでの動作の改善。
 

        

        
 
-機能追加
-機能追加
469,7 441,7
 
---SslStream作成用のコールバック、証明書関連のコールバックのプロパティ名を変更、また値をPopConnectionと共有しないようにした
---SslStream作成用のコールバック、証明書関連のコールバックのプロパティ名を変更、また値をPopConnectionと共有しないようにした
 
---PopSessionManagerからIWebRequestCreateの実装を分離、WebRequest.RegisterPrefixはPopWebRequestCreator.RegisterPrefixで行うようにした
---PopSessionManagerからIWebRequestCreateの実装を分離、WebRequest.RegisterPrefixはPopWebRequestCreator.RegisterPrefixで行うようにした
 

        

        
~
**0.24 (2010-02-06) [#changes_v0.24]
**0.24 (2010-02-06)
 
-機能追加
-機能追加
 
--拡張コマンドなど任意のコマンドを送信するためのメソッドを追加
--拡張コマンドなど任意のコマンドを送信するためのメソッドを追加
 
--WebClients名前空間
--WebClients名前空間
480,7 452,7
 
--PopStyleUriParserの実装を整理、&urn2url(urn:ietf:rfc:2384){POP URL Scheme};に従った動作となるようにエスケープされた文字を含むURLの取扱いを修正
--PopStyleUriParserの実装を整理、&urn2url(urn:ietf:rfc:2384){POP URL Scheme};に従った動作となるようにエスケープされた文字を含むURLの取扱いを修正
 
--接続時に不正なレスポンスを受信した場合、タイムアウトまで待ち合わせず、即座にPopConnectionExceptionをスローするように修正
--接続時に不正なレスポンスを受信した場合、タイムアウトまで待ち合わせず、即座にPopConnectionExceptionをスローするように修正
 

        

        
~
**0.23 (2010-01-30) [#changes_v0.23]
**0.23 (2010-01-30)
 
-機能追加
-機能追加
 
--&urn2url(urn:ietf:rfc:2449,#8){Extended POP3 Response Codes};に対応
--&urn2url(urn:ietf:rfc:2449,#8){Extended POP3 Response Codes};に対応
 
--AUTHコマンドを発行する場合、可能なら応答を待たずにinitial-responseを送信するようにした
--AUTHコマンドを発行する場合、可能なら応答を待たずにinitial-responseを送信するようにした
493,21 465,21
 
-修正・改善
-修正・改善
 
--受信したレスポンスをstringで保持する機能を削除
--受信したレスポンスをstringで保持する機能を削除
 

        

        
~
**0.22 (2010-01-23) [#changes_v0.22]
**0.22 (2010-01-23)
 
-[[works/libs/Smdn.Net.Imap4.Client]]をベースに再実装
-[[works/libs/Smdn.Net.Imap4.Client]]をベースに再実装
 
-PopWebRequest/PopWebResponseクラスの実装を追加
-PopWebRequest/PopWebResponseクラスの実装を追加
 
-アセンブリ名・名前空間をSmdn.Protocols.Pop3からSmdn.Net.Pop3に改名
-アセンブリ名・名前空間をSmdn.Protocols.Pop3からSmdn.Net.Pop3に改名
 

        

        
~
**0.13 (2008-04-27) [#changes_v0.13]
**0.13 (2008-04-27)
 
-STLSコマンドによるTLSへのアップグレードに対応
-STLSコマンドによるTLSへのアップグレードに対応
 
-取得したメッセージの改行文字が環境によって変わってしまう不具合を修正
-取得したメッセージの改行文字が環境によって変わってしまう不具合を修正
 

        

        
~
**0.12 (2008-04-07) [#changes_v0.12]
**0.12 (2008-04-07)
 
-HMACMD5アルゴリズムの実装を独自の実装からライブラリ標準のクラスを用いたものに変更
-HMACMD5アルゴリズムの実装を独自の実装からライブラリ標準のクラスを用いたものに変更
 

        

        
~
**0.11 (2008-03-10) [#changes_v0.11]
**0.11 (2008-03-10)
 
-[[works/tools/junk/TundereBird]]バージョンアップに伴うリリース
-[[works/tools/junk/TundereBird]]バージョンアップに伴うリリース
 

        

        
~
**0.10 (2008-03-06) [#changes_v0.10]
**0.10 (2008-03-06)
 
-初版
-初版
 

        

        

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

current previous
13,7 13,7
 
*ダウンロード
*ダウンロード
 
本ライブラリはMIT X11ライセンスでのリリースとなります。
本ライブラリはMIT X11ライセンスでのリリースとなります。
 

        

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

        

        
24,7 24,7
 
+すべての標準コマンドといくつかの拡張コマンドの送受信
+すべての標準コマンドといくつかの拡張コマンドの送受信
 
+SSL/TLS接続(POP over SSL, STLS)
+SSL/TLS接続(POP over SSL, STLS)
 
+APOP
+APOP
~
+SASL認証メカニズム(DIGEST-MD5, XOAUTH2他)
+SASL認証メカニズム(DIGEST-MD5他)
 

        

        
 
その他、サポートしている機能の詳細は「実装済み機能一覧」の項をご覧ください。
その他、サポートしている機能の詳細は「実装済み機能一覧」の項をご覧ください。
 

        

        
50,11 50,12
 
using System.IO;
using System.IO;
 

        

        
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
class GpopRetrieveExample {
class GpopRetrieveExample {
 
  public static void Main()
  public static void Main()
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      return true;
      return true;
 
    };
    };
 

        

        
76,10 77,11
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 

        

        
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Class GpopRetrieveExample
Class GpopRetrieveExample
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    PopSslConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
    PopConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
 

        

        
 
    Dim url As New Uri("pops://username@pop.gmail.com/")
    Dim url As New Uri("pops://username@pop.gmail.com/")
 
    Dim password As String = "password"
    Dim password As String = "password"
105,11 107,12
 
using System;
using System;
 

        

        
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
class GpopRetrieveExample {
class GpopRetrieveExample {
 
  public static void Main()
  public static void Main()
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      return true;
      return true;
 
    };
    };
 

        

        
136,10 139,11
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 

        

        
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Class GpopRetrieveExample
Class GpopRetrieveExample
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    PopSslConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
    PopConnection.ServerCertificateValidationCallback = AddressOf ValidateRemoteCertificate
 

        

        
 
    Dim url As New Uri("pops://username@pop.gmail.com/")
    Dim url As New Uri("pops://username@pop.gmail.com/")
 
    Dim password As String = "password"
    Dim password As String = "password"
173,13 177,11
 
*動作状況
*動作状況
 
以下のPOPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、POPでのアクセスが可能なメールサービスでの動作報告を頂いています。
以下のPOPサーバに対して概ね問題なく動作することを確認済みです。 この他にも、POPでのアクセスが可能なメールサービスでの動作報告を頂いています。
 
-GMail (Gpop)
-GMail (Gpop)
~
-Dovecot (1.2.11, 2.1.9, 2.2.3)
-Dovecot (1.2.11, 2.1.9)
 

        

        
 
以下の環境で概ね問題なく動作することを確認済みです。 テストはしていますが、予期しないバグがあるかもしれません。
以下の環境で概ね問題なく動作することを確認済みです。 テストはしていますが、予期しないバグがあるかもしれません。
+
-.NET Framework 4.5
 
-.NET Framework 4
-.NET Framework 4
 
-.NET Framework 3.5 SP 1
-.NET Framework 3.5 SP 1
+
-Mono 3.0.12
 
-Mono 2.11.3
-Mono 2.11.3
 
-Mono 2.10.8
-Mono 2.10.8
 

        

        
204,7 206,7
 
|&urn2url(urn:ietf:rfc:2595,anchor-text);|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:2595,anchor-text);|&color(green){implemented};||
 
|&urn2url(urn:ietf:rfc:3206,anchor-text);|&color(orange){partially implemented};|レスポンスコードが含まれていても通常のレスポンスと同様&sub{*1};に扱います。|
|&urn2url(urn:ietf:rfc:3206,anchor-text);|&color(orange){partially implemented};|レスポンスコードが含まれていても通常のレスポンスと同様&sub{*1};に扱います。|
 
|&urn2url(urn:ietf:rfc:5034,anchor-text);|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:5034,anchor-text);|&color(green){implemented};||
~
|&urn2url(urn:ietf:rfc:6856,anchor-text);|&color(gray){not implemented};||
|&urn2url(urn:ietf:rfc:5721,anchor-text);|&color(gray){not implemented};||
 
|RFC|status|note|f
|RFC|status|note|f
 

        

        
 
:通常のレスポンスと同様&sub{*1};|そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。
:通常のレスポンスと同様&sub{*1};|そのレスポンスを受信したということだけを検知します。 レスポンスに応じた処理を行うといったことはしません。

works/libs/Smdn.Net.Pop3.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.Pop3.Client]]のドキュメントとサンプルです。 ここに記載されているものは[[version 1.15>works/libs/Smdn.Net.Pop3.Client/releases#changes_v1.15]]時点のもので、記載不備などがあるかもしれません。
[[works/libs/Smdn.Net.Pop3.Client]]のドキュメントとサンプルです。 ここに記載されているものはversion 1.11時点のもので、記載不備などがあるかもしれません。
 

        

        
 
サンプルコードは[[このページの最後>#samples]]にあります。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
サンプルコードは[[このページの最後>#samples]]にあります。 ご質問などありましたら[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
314,13 314,13
 
***証明書の選択と検証 [#certs]
***証明書の選択と検証 [#certs]
 
SSL/TLS接続時に使用する証明書は&msdn(netfx,type,System.Security.Cryptography.X509Certificates.X509Certificate2Collection){X509Certificate2Collection};で設定できます。 また、証明書の選択と検証には&msdn(netfx,type,System.Net.Security.RemoteCertificateValidationCallback){RemoteCertificateValidationCallbackデリゲート};と&msdn(netfx,type,System.Net.Security.LocalCertificateSelectionCallback){LocalCertificateSelectionCallbackデリゲート};を指定できます。 デフォルトの状態では、SSL/TLS接続時にこれらのコールバックメソッドを呼び出して証明書の検証と選択を行い、&msdn(netfx,type,System.Net.Security.SslStream){SslStream};を作成します。
SSL/TLS接続時に使用する証明書は&msdn(netfx,type,System.Security.Cryptography.X509Certificates.X509Certificate2Collection){X509Certificate2Collection};で設定できます。 また、証明書の選択と検証には&msdn(netfx,type,System.Net.Security.RemoteCertificateValidationCallback){RemoteCertificateValidationCallbackデリゲート};と&msdn(netfx,type,System.Net.Security.LocalCertificateSelectionCallback){LocalCertificateSelectionCallbackデリゲート};を指定できます。 デフォルトの状態では、SSL/TLS接続時にこれらのコールバックメソッドを呼び出して証明書の検証と選択を行い、&msdn(netfx,type,System.Net.Security.SslStream){SslStream};を作成します。
 

        

        
~
デフォルトでは、接続・認証時にPopSslConnectionクラス(Smdn.Net.Pop3.Client名前空間)の以下のメンバを参照して証明書の選択と検証を行います。
デフォルトでは、接続・認証時にPopConnectionクラス(Smdn.Net.Pop3.Protocol.Client名前空間)の以下のメンバを参照して証明書の選択と検証を行います。
 

        

        
 
|*SSL/TLS接続時に参照するメンバ(いずれもクラスプロパティ)
|*SSL/TLS接続時に参照するメンバ(いずれもクラスプロパティ)
 
|~型|~PopClientクラスが参照するメンバ|h
|~型|~PopClientクラスが参照するメンバ|h
 
|X509Certificate2Collection|PopConnection.ClientCertificates|
|X509Certificate2Collection|PopConnection.ClientCertificates|
 
|RemoteCertificateValidationCallback|PopConnection.ServerCertificateValidationCallback|
|RemoteCertificateValidationCallback|PopConnection.ServerCertificateValidationCallback|
~
|LocalCertificateSelectionCallback|PopConnection.ClientCertificateSelectionCallback|
|RemoteCertificateValidationCallback|PopConnection.ClientCertificateSelectionCallback|
 

        

        
 
以下は証明書の検証を行う簡単な例です。
以下は証明書の検証を行う簡単な例です。
 

        

        
330,13 330,15
 
using System.Net;
using System.Net;
 
using System.Net.Security;
using System.Net.Security;
 
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.X509Certificates;
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
public class ValidateServerCerts {
public class ValidateServerCerts {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
 
    // 証明書の検証を行うコールバックメソッドを指定
    // 証明書の検証を行うコールバックメソッドを指定
~
    PopSslConnection.ServerCertificateValidationCallback += ValidateRemoteCertificate;
    PopConnection.ServerCertificateValidationCallback += ValidateRemoteCertificate;
 

        

        
 
    using (var client = new PopClient(new Uri("pops://user@localhost/"))) {
    using (var client = new PopClient(new Uri("pops://user@localhost/"))) {
 
      client.Connect("pass");
      client.Connect("pass");
371,12 373,14
 
Imports System.Net
Imports System.Net
 
Imports System.Net.Security
Imports System.Net.Security
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Public Class ValidateServerCerts
Public Class ValidateServerCerts
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
 
    ' 証明書の検証を行うコールバックメソッドを指定
    ' 証明書の検証を行うコールバックメソッドを指定
~
    PopSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    PopConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
    Using client As New PopClient(New Uri("pops://user@localhost/"))
    Using client As New PopClient(New Uri("pops://user@localhost/"))
 
      client.Connect("pass")
      client.Connect("pass")
412,7 416,7
 
***SSL/TLS接続のカスタマイズ [#sslcallback]
***SSL/TLS接続のカスタマイズ [#sslcallback]
 
(このドキュメントは作成中です)
(このドキュメントは作成中です)
 
SslStream以外の実装を使いたい場合や、より高度な検証が必要な場合など、SSL/TLS接続時にデフォルトの動作を変更してカスタマイズする場合は、UpgradeConnectionStreamCallbackデリゲートを使用してコールバックメソッドを指定してください。
SslStream以外の実装を使いたい場合や、より高度な検証が必要な場合など、SSL/TLS接続時にデフォルトの動作を変更してカスタマイズする場合は、UpgradeConnectionStreamCallbackデリゲートを使用してコールバックメソッドを指定してください。
~
コールバックメソッドはPopClient.Connect()メソッドの引数に指定してください。 実装例はPopSslConnection.CreateSslStreamメソッドを参照してください。
コールバックメソッドはPopClient.Connect()メソッドの引数に指定してください。 実装例はPopConnection.CreateSslStreamメソッドを参照してください。
 

        

        
 

        

        
 
#hr
#hr
989,12 993,14
 
using System.Net;
using System.Net;
 
using System.Text;
using System.Text;
 

        

        
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
class GpopRetrieveRecent {
class GpopRetrieveRecent {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
 
      return true;
      return true;
 
    };
    };
1025,7 1031,9
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 
Imports System.Text
Imports System.Text
 

        

        
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Class GpopRetrieveRecent
Class GpopRetrieveRecent
 
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
1037,7 1045,7
 
  End Function
  End Function
 

        

        
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    PopSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    PopConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
    Using client As New PopClient(New Uri("pops://user@pop.gmail.com/"))
    Using client As New PopClient(New Uri("pops://user@pop.gmail.com/"))
 
      client.Connect("pass")
      client.Connect("pass")
1064,12 1072,14
 
#code{{
#code{{
 
using System;
using System;
 

        

        
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
class SaveAndDelete {
class SaveAndDelete {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
 
      return true;
      return true;
 
    };
    };
1116,7 1126,9
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 
Imports System.Text
Imports System.Text
 

        

        
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Class SaveAndDelete
Class SaveAndDelete
 
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
1128,7 1140,7
 
  End Function
  End Function
 

        

        
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    PopSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    PopConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
    Using client As New PopClient(New Uri("pops://user;auth=ntlm@localhost/"))
    Using client As New PopClient(New Uri("pops://user;auth=ntlm@localhost/"))
 
      client.Connect("pass")
      client.Connect("pass")
1172,7 1184,9
 
#code{{
#code{{
 
using System;
using System;
 

        

        
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
-
using Smdn.Net.Pop3.Protocol.Client;
 

        

        
 
class SaveAndDelete {
class SaveAndDelete {
 
  private static string SelectFileNameOf(PopMessageInfo message)
  private static string SelectFileNameOf(PopMessageInfo message)
1183,7 1197,7
 

        

        
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
 
      return true;
      return true;
 
    };
    };
1204,7 1218,9
 
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.X509Certificates
 
Imports System.Text
Imports System.Text
 

        

        
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
-
Imports Smdn.Net.Pop3.Protocol.Client
 

        

        
 
Class SaveAndDelete
Class SaveAndDelete
 
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
  Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _
1221,7 1237,7
 
  End Function
  End Function
 

        

        
 
  Public Shared Sub Main(ByVal args As String())
  Public Shared Sub Main(ByVal args As String())
~
    PopSslConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
    PopConnection.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate)
 

        

        
 
      ' メールボックスにあるすべてのメッセージを取得して指定したファイル名で保存
      ' メールボックスにあるすべてのメッセージを取得して指定したファイル名で保存
 
    PopClient.DownloadAllMessagesToFiles(New Uri("pops://user;auth=ntlm@localhost/"), _
    PopClient.DownloadAllMessagesToFiles(New Uri("pops://user;auth=ntlm@localhost/"), _
1241,6 1257,7
 
using System.Collections.Generic;
using System.Collections.Generic;
 
using System.Threading;
using System.Threading;
 

        

        
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
 

        

        
 
class CheckRecent {
class CheckRecent {
1290,6 1307,7
 
Imports System.Collections.Generic
Imports System.Collections.Generic
 
Imports System.Threading
Imports System.Threading
 

        

        
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
 

        

        
 
Class CheckRecent
Class CheckRecent
1344,6 1362,7
 
#code{{
#code{{
 
using System;
using System;
 

        

        
-
using Smdn.Net.Pop3;
 
using Smdn.Net.Pop3.Client;
using Smdn.Net.Pop3.Client;
 
using Smdn.Formats.Mime;
using Smdn.Formats.Mime;
 

        

        
1380,6 1399,7
 
#code{{
#code{{
 
Imports System
Imports System
 

        

        
-
Imports Smdn.Net.Pop3
 
Imports Smdn.Net.Pop3.Client
Imports Smdn.Net.Pop3.Client
 
Imports Smdn.Formats.Mime
Imports Smdn.Formats.Mime
 

        

        
1432,12 1452,12
 
class Sample {
class Sample {
 
  public static void Main(string[] args)
  public static void Main(string[] args)
 
  {
  {
~
    PopSslConnection.ServerCertificateValidationCallback += delegate {
    PopConnection.ServerCertificateValidationCallback += delegate {
 
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
      // 証明書の検証は省略 (エラーを無視してすべて受け入れる)
 
      return true;
      return true;
 
    };
    };
 

        

        
~
    using (var session = new PopSession("pop.gmail.com", 995, PopSslConnection.CreateSslStream)) {
    using (var session = new PopSession("pop.gmail.com", 995, PopConnection.CreateSslStream)) {
 
      var cred = new NetworkCredential("user", "pass");
      var cred = new NetworkCredential("user", "pass");
 

        

        
 
      // 利用可能ならAPOP、そうでなければUSER/PASSでログイン
      // 利用可能ならAPOP、そうでなければUSER/PASSでログイン

works/libs/Smdn.Security.Authentication.Sasl/index.wiki.txt

current previous
6,7 6,7
 
*実装済み機能一覧
*実装済み機能一覧
 
サポートするSASLメカニズムの一覧です。
サポートするSASLメカニズムの一覧です。
 

        

        
~
|RFC/document|mechanism name|status|note|h
|RFC|mechanism name|status|note|h
 
|&urn2url(urn:ietf:rfc:1731,anchor-text);|KERBEROS_V4|&color(gray){not implemented};||
|&urn2url(urn:ietf:rfc:1731,anchor-text);|KERBEROS_V4|&color(gray){not implemented};||
 
|&urn2url(urn:ietf:rfc:2195,anchor-text);|CRAM-MD5|&color(green){implemented};||
|&urn2url(urn:ietf:rfc:2195,anchor-text);|CRAM-MD5|&color(green){implemented};||
 
|&urn2url(urn:ietf:rfc:2444,anchor-text);|OTP|&color(gray){not implemented};||
|&urn2url(urn:ietf:rfc:2444,anchor-text);|OTP|&color(gray){not implemented};||
27,7 27,6
 
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-*|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-*|&color(gray){not implemented};||
 
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-SHA-1|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-SHA-1|&color(gray){not implemented};||
 
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-SHA-1-PLUS|&color(gray){not implemented};||
|&urn2url(urn:ietf:id:ietf-sasl-scram-11,anchor-text);|SCRAM-SHA-1-PLUS|&color(gray){not implemented};||
+
|[[The SASL XOAUTH2 Mechanism:https://developers.google.com/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism]]|XOAUTH2|&color(green){implemented};||
 
|RFC|mechanism name|status|note|f
|RFC|mechanism name|status|note|f
 

        

        
 
使い方・認証処理の実装は[[works/libs/Smdn.Net.Imap4.Client]]および[[works/libs/Smdn.Net.Pop3.Client]]をご覧ください。 またデモ用アプリケーション[[works/tools/junk/MRAConnector]], [[works/tools/junk/SimpleMailer]]もあわせてご覧ください。
使い方・認証処理の実装は[[works/libs/Smdn.Net.Imap4.Client]]および[[works/libs/Smdn.Net.Pop3.Client]]をご覧ください。 またデモ用アプリケーション[[works/tools/junk/MRAConnector]], [[works/tools/junk/SimpleMailer]]もあわせてご覧ください。
38,7 37,6
 
-開発版
-開発版
 
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
--[[http://svn.smdn.jp/anonsvn/libs/Smdn/trunk/]]よりチェックアウトできます
 
-0.3x
-0.3x
+
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.33.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.32.tar.bz2}
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.32.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.31.tar.bz2}
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.31.tar.bz2}
 
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.30.tar.bz2}
--${smdncms:distfilelink,Smdn.Security.Authentication.Sasl-0.30.tar.bz2}
58,12 56,6
 
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは[[掲示板>misc/forum/libs]]へどうぞ。
 

        

        
 
*変更履歴
*変更履歴
+
**0.33 (2013-07-15)
+
-機能追加
+
--[[SASL XOAUTH2 Mechanism:https://developers.google.com/gmail/xoauth2_protocol#the_sasl_xoauth2_mechanism]]の実装となるクラスを追加
+
-修正・改善
+
--SaslMechanismAttributeが継承されるように変更
+

          
 
**0.32 (2010-01-08)
**0.32 (2010-01-08)
 
-修正・改善
-修正・改善
 
--上位ライブラリのインターフェイス変更にあわせて実装を修正
--上位ライブラリのインターフェイス変更にあわせて実装を修正