C#で書いた.NET Framework/Mono用IMAP4rev1クライアントライブラリです。 IMAPサーバからのメールボックスの管理(作成・削除・ステータスの取得など)、メッセージの検索・取得・アップロードなどが出来ます。
その他、サポートしている機能の詳細は機能一覧をご覧ください。
クライアント実装として以下の3つのクラスを用意しています。
本ライブラリはMIT X11ライセンスでのリリースとなります。
もっとも簡単なサンプルコードとして、System.Net.WebClientクラスとIMAP URLを使ったメッセージのダウンロード方法を例示します。 Gmailアカウントにアクセスし、メッセージをダウンロードしてファイルに保存するサンプルです。
using System; using System.Net; using Smdn.Net.Imap4.WebClients; class GimapFetchExample { public static void Main() { ImapWebRequestCreator.RegisterPrefix(); ImapSessionManager.ServerCertificateValidationCallback += delegate { return true; }; using (var client = new WebClient()) { client.Credentials = new NetworkCredential("username", "password"); client.DownloadFile("imaps://username@imap.gmail.com/INBOX/;UID=1", "message.eml"); } } }
Imports System Imports System.Net Imports System.Net.Security Imports System.Security.Cryptography.X509Certificates Imports Smdn.Net.Imap4.WebClients Class GimapFetchExample Public Shared Sub Main() ImapWebRequestCreator.RegisterPrefix() ImapSessionManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateRemoteCertificate) Using client As New WebClient() client.Credentials = New NetworkCredential("username", "password") client.DownloadFile("imaps://username@imap.gmail.com/INBOX/;UID=1", "message.eml") End Using End Sub Private Shared Function ValidateRemoteCertificate(ByVal sender As Object, _ ByVal certificate As X509Certificate, _ ByVal chain As X509Chain, _ ByVal sslPolicyErrors As SslPolicyErrors) As Boolean Return True End Function End Class
詳細・その他のサンプルコードはドキュメント・サンプルおよびデモ用アプリケーションMRAConnector, TundereBirdをご覧ください。
不具合の報告、ライブラリに対する要望や提案、使い方の質問などは掲示板へどうぞ。
以下のIMAPサーバに対して概ね問題なく動作することを確認済みです。
以下の環境で概ね問題なく動作することを確認済みです。 テストはしていますが、予期しないバグがあるかもしれません。