2009-04-14 14 views
8

Estoy buscando una forma de controlar una bandeja de entrada de GMail para nuevos correos electrónicos. Sin embargo, quiero evitar revisar cada pocos minutos y estoy buscando algún tipo de notificación en tiempo real. Me di cuenta de que Outlook (y otros clientes que admiten IMAP) se muestran instantáneamente cuando hay un nuevo correo electrónico, pero desafortunadamente todas las bibliotecas .NET IMAP parecen carecer de esta funcionalidad.Buscando una notificación IMAP en tiempo real de los correos electrónicos nuevos

¿Alguien sabe de una biblioteca IMAP que tiene esta funcionalidad? ¿O hay otra forma de recibir notificaciones instantáneas de nuevos mensajes sin hacer una encuesta de período corto?

Respuesta

8

Necesita manejar IMAP IDLE.

Esto le avisará cuando lleguen nuevos mensajes, sin sondeo constante (que es malo).


Una muy buena, NET IMAP comercial es MailBee.Net. Hace un tiempo lo usé para un proyecto pequeño, y parecía manejar las cosas muy bien, y era bastante fácil trabajar con él. Puede haber otros: solo busca en tu biblioteca el envío del comando IDLE o el manejo del comando IDLE, y es probable que encuentres algo.

3

Mail.dll es compatible con IDLE. Aquí está la muestra simplificada:

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

Puede descargar Mail.dll en: http://www.lesnikowski.com/mail/

También puedes ver mi blog for samples.

Tenga en cuenta que Mail.dll es un producto comercial que he creado.

@Queops

Éstos son los informes de 2 escáneres antivirus en línea:

www.viruschief.com

www.virustotal.com

Tenga en cuenta que VirusTotal está utilizando el escáner Symantec.

+0

traté de descargar el instalador del Mail.dll pero mi Norton Antivirus rápidamente dije que esto era algún tipo de virus/amenaza e inmediatamente eliminado. Se recomienda precaución. – Qosmo

+0

"algún tipo de"? puedes ser mas preciso? He estado usando este componente durante mucho tiempo y, desde mi perspectiva, todo está bien con él. Si estoy en lo cierto, también lo usan las grandes compañías. –

1

Trate biblioteca .NET libre para acceder a servidor IMAP S22.Imap, con el apoyo IDLE

+0

usando (cliente var = nuevo ImapClient ("imap.gmail.com", 993, "nombre de usuario", "contraseña", AuthMethod.Login, verdadero)) { var uids = client.Search (SearchCondition.Unseen()) ; var messages = client.GetMessages (uids); } –

Cuestiones relacionadas