115

C#で(SSLを使用して)Imapサーバーにアクセスするための組み込みメソッドはありますか、それとも優れた無料のライブラリがありますか?

4

6 に答える 6

88

私はしばらく IMAP ソリューションを探していましたが、かなりの数を試した後、AE.Net.Mailを使用しています。

[コード] タブに移動し、小さな [ダウンロード] アイコンをクリックすると、コードをダウンロードできます。作成者はビルド済みのダウンロードを提供していないため、自分でコンパイルする必要があります。(ただし、NuGet を介して取得できると思います)。bin/ フォルダーに .dll がなくなりました。

ドキュメントはありませんが、これはマイナス面だと思いますが、ソース コードを調べて (オープン ソースに賛成です!)、Intellisense を使用することで、これを改善することができました。以下のコードは、特に Gmail の IMAP サーバーに接続します。

// Connect to the IMAP server. The 'true' parameter specifies to use SSL
// which is important (for Gmail at least)
ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass",
                ImapClient.AuthMethods.Login, 993, true);
// Select a mailbox. Case-insensitive
ic.SelectMailbox("INBOX");
Console.WriteLine(ic.GetMessageCount());
// Get the first *11* messages. 0 is the first message;
// and it also includes the 10th message, which is really the eleventh ;)
// MailMessage represents, well, a message in your mailbox
MailMessage[] mm = ic.GetMessages(0, 10);
foreach (MailMessage m in mm)
{
    Console.WriteLine(m.Subject);
}
// Probably wiser to use a using statement
ic.Dispose();

最新バージョンといくつかの優れたコード例については、 Githubページをチェックアウトしてください。

于 2011-07-15T18:11:40.807 に答える
35

一部の人にとって役立つことを期待して、私のやり方をチェックしてみてください。

S22.Imap

十分に文書化された .NET 用の優れた IMAP ライブラリがいくつかありますが、商用利用は言うまでもなく、個人用に無料のものはありません。

S22.Imap は、IMAP IDLE 通知だけでなく、SSL と部分的なメッセージのフェッチもサポートしています。私が見つけたプロジェクトでは、ドキュメントがまばらであるか存在しないことが多かったため、ドキュメントを作成して最新の状態に保つことにいくらかの努力を払ってきました。

お気軽に試してみて、問題が発生した場合はお知らせください。

于 2012-09-11T13:39:24.040 に答える
19

IMAP に対する .NET フレームワークのサポートはありません。サードパーティのコンポーネントを使用する必要があります。

https://www.limilabs.com/mailを試してみてください。非常に手頃な価格で使いやすく、SSL もサポートしています。

using(Imap imap = new Imap())
{
    imap.ConnectSSL("imap.company.com");
    imap.Login("user", "password");

    imap.SelectInbox();
    List<long> uids = imap.SearchFlag(Flag.Unseen);
    foreach (long uid in uids)
    {
        string eml = imap.GetMessageByUID(uid);
        IMail message = new MailBuilder()
            .CreateFromEml(eml);

        Console.WriteLine(message.Subject);
        Console.WriteLine(message.TextDataString);
    }
    imap.Close(true);
}

これは私が作成した商用製品であることに注意してください。

https://www.limilabs.com/mailからダウンロードできます。

于 2010-05-13T17:03:51.803 に答える
15

MailSystem.NETには、IMAP4 に必要なものがすべて含まれています。無料でオープンソースです。

(私はそのプロジェクトに参加しています)

于 2010-11-18T15:19:23.647 に答える
5

ライブラリを使用してみてください: https ://imapx.codeplex.com/

そのライブラリは無料でオープンソースであり、例があります: https ://imapx.codeplex.com/wikipage?title=Sample%20code%20for%20get%20messages%20from%20your%20inbox

于 2012-08-02T14:06:02.110 に答える
2

私はそれを自分で試したことはありませんが、これはあなたが試すことができる無料のライブラリです(これのSSL部分についてはよくわかりません):

http://www.codeproject.com/KB/IP/imaplibrary.aspx

また、SSLのパラメータを持つxemailがあります。

http://xemail-net.sourceforge.net/

[編集]あなた(またはクライアント)がプロのメールクライアントにお金を持っている場合、このスレッドにはいくつかの良い推奨事項があります:

電子メールの受信トレイにアクセスするための.NETコンポーネントの推奨事項

于 2009-03-21T23:12:09.030 に答える