2009-04-14 5 views
8

Szukam sposobu monitorowania skrzynki odbiorczej Gmaila pod kątem nowych wiadomości e-mail. Jednak chcę unikać sprawdzania co kilka minut i szukam powiadomień w czasie rzeczywistym. Zauważyłem, że Outlook (i inni klienci obsługujący IMAP) natychmiast pokazują, kiedy pojawia się nowa wiadomość e-mail, ale niestety wszystkie biblioteki .NET IMAP wydają się nie mieć tej funkcji.Szukam powiadomienia IMAP w czasie rzeczywistym o nowych wiadomościach e-mail

Czy ktoś wie o bibliotece IMAP, która ma tę funkcjonalność? Czy istnieje inny sposób natychmiastowego powiadamiania o nowej wiadomości bez przeprowadzania krótkiej ankiety?

Odpowiedz

8

Musisz obsłużyć numer IMAP IDLE.

Powiadomi Cię, gdy pojawią się nowe wiadomości, bez stałego odpytywania (co jest złe).


Bardzo dobra, komercyjna biblioteka .NET IMAP to MailBee.Net. Używałem go do niewielkiego projektu jakiś czas temu i wydawało mi się, że radzę sobie z nim bardzo dobrze i że praca z nim jest dość łatwa. Mogą być inne - po prostu wyszukaj w swojej bibliotece, aby wysłać polecenie IDLE lub obsługę komend IDLE, a prawdopodobnie coś znajdziesz.

3

Mail.dll obsługuje IDLE. Oto uproszczony przykład:

using (Imap client = new Imap()) 
{ 
    client.ConnectSSL("imap.server.com"); 
    client.Login("[email protected]", "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(); 
} 

Można pobrać Mail.dll w: http://www.lesnikowski.com/mail/

także sprawdzić mój blog for samples.

Należy zauważyć, że Mail.dll to produkt komercyjny, który utworzyłem.

@Queops

Oto raporty z 2 skanerów antywirusowych online:

www.viruschief.com

www.virustotal.com

Uwaga VirusTotal wykorzystuje Symantec skaner.

+0

próbowałem pobraniu instalatora danej Mail.dll ale moim Norton Antivirus natychmiast powiedział to był jakiś rodzaj wirusa/zagrożenia i natychmiast usunięta. Ostrożność jest zalecana. – Qosmo

+0

"coś w rodzaju"? Czy możesz być bardziej precyzyjny? Używam tego komponentu przez długi czas iz mojej perspektywy wszystko jest w porządku. Jeśli mam rację, używają go także duże firmy. –

1

Spróbuj darmową bibliotekę .NET dostępu do serwera IMAP S22.Imap, z IDLE wsparcia

+0

przy użyciu (var client = new ImapClient ("imap.gmail.com", 993, "username", "password", AuthMethod.Login, true)) { var uids = client.Search (SearchCondition.Unseen()) ; var messages = client.GetMessages (uids); } –

Powiązane problemy