2009-04-14 6 views
8

Ich bin auf der Suche nach einer Möglichkeit, eine GMail-Posteingang für neue E-Mails zu überwachen. Ich möchte jedoch vermeiden, alle paar Minuten zu überprüfen, und ich suche nach einer Art von Echtzeit-Benachrichtigung. Ich habe festgestellt, dass Outlook (und andere IMAP-unterstützende Clients) sofort anzeigen, wenn eine neue E-Mail vorhanden ist, aber leider fehlt allen .NET IMAP-Bibliotheken diese Funktionalität.Auf der Suche nach einer Echtzeit-IMAP-Benachrichtigung über neue E-Mails

Kennt jemand eine IMAP-Bibliothek, die diese Funktionalität hat? Oder gibt es einen anderen Weg, um sofort über neue Nachrichten benachrichtigt zu werden, ohne kurzzeitiges Polling durchzuführen?

Antwort

8

Sie müssen mit IMAP IDLE umgehen.

Dies benachrichtigt Sie, wenn neue Nachrichten eintreffen, ohne konstantes Polling (was schlecht ist).


Eine sehr gute, kommerzielle .NET IMAP-Bibliothek ist MailBee.Net. Ich habe es vor einiger Zeit für ein kleines Projekt benutzt, und es schien die Dinge sehr gut zu handhaben und es war ziemlich einfach mit ihm zu arbeiten. Möglicherweise gibt es andere - suchen Sie einfach in Ihrer Bibliothek nach dem IDLE-Befehl oder der IDLE-Befehlsbearbeitung, und Sie werden wahrscheinlich etwas finden.

3

Mail.dll unterstützt IDLE. Hier ist das vereinfachte Beispiel:

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(); 
} 

Sie Mail.dll herunterladen können: http://www.lesnikowski.com/mail/

Auch meine blog for samples überprüfen.

Bitte beachten Sie, dass Mail.dll ein kommerzielles Produkt ist, das ich erstellt habe.

@Queops

Hier sind die Berichte von zwei Online-Virenscanner:

www.viruschief.com

www.virustotal.com

Bitte beachten Sie, dass Virustotal Symantec Scanner verwendet.

+0

Ich habe versucht, das Installationsprogramm des Mail.dll herunterzuladen, aber mein Norton Antivirus prompt sagte dies eine Art von Virus/Bedrohung ist und SOFORT gelöscht. Vorsicht ist geboten. – Qosmo

+0

"irgendeine Art von"? Kannst du genauer sein? Ich habe diese Komponente schon lange benutzt und aus meiner Sicht ist alles in Ordnung. Wenn ich recht habe, wird es auch von großen Firmen benutzt. –

1

Versuchen kostenlos NET-Bibliothek für den Zugriff auf IMAP-Server S22.Imap, mit IDLE Unterstützung

+0

mit (var client = neuer ImapClient ("imap.gmail.com", 993, "Benutzername", "Kennwort", AuthMethod.Login, true)) { var uids = client.Search (SearchCondition.Unseen()) ; var messages = client.GetMessages (UIDs); } –