Доступ к Imap в С#

Есть ли встроенный метод доступа к серверу Imap (с SSL) на С# или есть хорошая бесплатная библиотека?

Ответ 1

Я искал решение IMAP некоторое время, и, после нескольких попыток, я перейду с AE.Net.Mail.

Вы можете загрузить код, перейдя на вкладку "Код" и нажмите маленький значок "Загрузить". Поскольку автор не предоставляет готовых загрузок, вы должны скомпилировать его самостоятельно. (Я считаю, вы можете получить его через NuGet, хотя). В корзине/папке больше нет .dll.

Нет документации, которую я считаю недостатком, но я смог взломать ее, посмотрев исходный код (yay для open source!) и используя Intellisense. Следующий код подключается специально к серверу IMAP Gmail:

// 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", "[email protected]", "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 для самой новой версии и некоторых примеров кода.

Ответ 2

В надежде, что это будет полезно для некоторых, вы можете проверить мой ход у него:

S22.Imap

Пока есть несколько хороших и хорошо документированных библиотек IMAP для .NET. доступных, ни один из них не является бесплатным для личного, не говоря уже о коммерческом использовании... и Я был не просто доволен теми, кто отказался от бесплатных альтернатив Я нашел.

S22.Imap поддерживает уведомления IMAP IDLE, а также SSL и частичное сообщение выборка. Я приложил некоторые усилия для создания documentation и сохранения это актуально, потому что с проектами, которые я нашел, документация часто была редкой или не существует.

Не стесняйтесь, дайте мне знать, если у вас возникнут проблемы!

Ответ 3

Для IMAP не поддерживается .NET framework. Вам нужно будет использовать сторонний компонент.

Попробуйте 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.

Ответ 4

MailSystem.NET содержит всю вашу потребность в IMAP4. Это бесплатный и открытый исходный код.

(Я участвую в проекте)

Ответ 6

Я не пробовал это сам, но это бесплатная библиотека, которую вы могли бы попробовать (я не очень уверен в отношении части SSL на этом):

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

Кроме того, есть xemail, у которого есть параметры для SSL:

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

[EDIT] Если у вас (или у клиента) есть деньги для профессионального почтового клиента, этот поток содержит несколько хороших рекомендаций:

Рекомендации для компонента .NET для доступа к почтовому ящику электронной почты