2009-04-14 6 views
8

Je cherche un moyen de surveiller une boîte de réception GMail pour les nouveaux e-mails. Cependant, je veux éviter de vérifier toutes les quelques minutes et je cherche une sorte de notification en temps réel. J'ai remarqué qu'Outlook (et d'autres clients prenant en charge IMAP) s'affiche instantanément lorsqu'il y a un nouveau courrier électronique, mais malheureusement toutes les bibliothèques .NET IMAP semblent manquer de cette fonctionnalité.Vous cherchez une notification IMAP en temps réel de nouveaux e-mails?

Est-ce que quelqu'un connaît une bibliothèque IMAP qui a cette fonctionnalité? Ou y a-t-il une autre façon d'être immédiatement averti du nouveau message sans faire un sondage de courte période?

Répondre

8

Vous devez gérer IMAP IDLE.

Cela vous avertira lorsque de nouveaux messages arrivent, sans interrogation constante (ce qui est mauvais).


Une très bonne, la bibliothèque IMAP .NET commerciale est MailBee.Net. Je l'ai utilisé pour un petit projet il y a quelque temps, et il semblait très bien gérer les choses, et être assez facile à travailler. Il peut y en avoir d'autres - il suffit de chercher dans votre bibliothèque pour envoyer la commande IDLE ou la commande IDLE, et vous trouverez probablement quelque chose.

3

Mail.dll prend en charge IDLE. voici l'exemple simplifié:

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

Vous pouvez télécharger Mail.dll à: http://www.lesnikowski.com/mail/

Consultez également mon blog for samples.

Veuillez noter que Mail.dll est un produit commercial que j'ai créé.

@Queops

Voici les rapports de 2 scanners antivirus en ligne:

www.viruschief.com

www.virustotal.com

S'il vous plaît noter que VirusTotal utilise le scanner Symantec.

+0

J'ai essayé de télécharger le programme d'installation du Mail.dll mais mon Norton Antivirus dit rapidement c'était une sorte de virus/menaces et IMMEDIATEMENT suppression. La prudence est conseillée. – Qosmo

+0

"une sorte de"? Pouvez-vous être plus précis? J'utilise ce composant depuis longtemps et de mon point de vue, tout est OK. Si j'ai raison, il est également utilisé par les grandes entreprises. –

1

Essayez la bibliothèque .NET gratuit pour l'accès au serveur IMAP S22.Imap, avec le soutien IDLE

+0

en utilisant (var client = nouveau ImapClient ("imap.gmail.com", 993, "nom d'utilisateur", "mot de passe", AuthMethod.Login, true)) { var uids = client.Search (SearchCondition.Unseen()) ; var messages = client.GetMessages (uids); } –

Questions connexes