Поиск IMAP-уведомлений в режиме реального времени о новых электронных письмах - PullRequest
9 голосов
/ 14 апреля 2009

Я ищу способ отслеживать входящие сообщения GMail на наличие новых писем. Тем не менее, я хочу избегать проверки каждые несколько минут, и я ищу какое-то уведомление в режиме реального времени. Я заметил, что Outlook (и другие клиенты, поддерживающие IMAP) мгновенно показывают, когда появляется новая электронная почта, но, к сожалению, все библиотеки .NET IMAP, похоже, не имеют этой функции.

Кто-нибудь знает библиотеку IMAP, которая имеет эту функцию? Или есть другой способ мгновенно получить уведомление о новом сообщении без проведения краткого опроса?

Ответы [ 3 ]

8 голосов
/ 14 апреля 2009

Вам нужно обработать IMAP IDLE .

Это будет уведомлять вас о поступлении новых сообщений без постоянного опроса (что плохо).


Очень хорошая коммерческая библиотека .NET IMAP - MailBee.Net . Некоторое время назад я использовал его для небольшого проекта, и он, казалось, очень хорошо справлялся, и с ним было довольно легко работать. Могут быть и другие - просто поищите в своей библиотеке отправку команды IDLE или обработку команды IDLE, и вы, вероятно, что-то найдете.

3 голосов
/ 15 апреля 2010

Mail.dll поддерживает IDLE. Вот упрощенный пример:

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

    FolderStatus folderStatus = client.SelectInbox();
    Console.WriteLine("Total message count: {0}",
        folderStatus.MessageCount);

    while(true)
    {
        FolderStatus currentStatus = client.Idle();
        Console.WriteLine("Total message count: {0}",
                currentStatus.MessageCount);
        foreach(long uid in client.SearchFlag(Flag.Unseen))
        {
            IMail email = new MailBuilder().CreateFromEml(
                client.GetHeadersByUID(uid));
            Console.WriteLine(email.Subject);
        }
    }
    client.Close();
}

Вы можете скачать Mail.dll по адресу: http://www.lesnikowski.com/mail/

Также проверьте мой блог для образцов .

Обратите внимание, что Mail.dll - это коммерческий продукт, который я создал.

@ Queops

Вот отчеты от 2-х онлайн антивирусных сканеров:

www.viruschief.com

www.virustotal.com

Обратите внимание, что VirusTotal использует сканер Symantec.

1 голос
/ 27 июня 2013

Попробуйте бесплатную библиотеку .NET для доступа к серверу IMAP S22.Imap , с поддержкой IDLE

...