Recomendaciones para un componente .NET para acceder a una bandeja de entrada de correo electrónico

Se me ha pedido que escriba un servicio de Windows en C # para supervisar periódicamente una bandeja de entrada de correo electrónico e insertar los detalles de los mensajes recibidos en una tabla de la base de datos.

Mi instinto es hacer esto a través de POP3 y, por supuesto, Google para el “componente .NET POP3” produce innumerables resultados (ok, 146,000).

¿Alguien ha hecho algo similar antes y puede recomendar un componente decente que no rompa el banco (unos cientos de dólares como máximo)?

¿Habría algún beneficio al usar IMAP en lugar de POP3?

Recomiendo Chilkat . Tienen componentes bastante estables, y puede obtener su componente de correo electrónico a un precio tan bajo como $ 99 para un solo desarrollador. Personalmente, creo que ir con todo el paquete de componentes es una mejor oferta, ya que solo cuesta $ 289 y viene con muchos componentes útiles. No estoy afiliado a ellos de ninguna manera, aunque probablemente suene como yo.

Con el protocolo IMAP puede acceder a subcarpetas y establecer el estado del mensaje (visto / no visto), también puede usar la función IDLE para notificaciones instantáneas.

Mail.dll incluye componentes POP3 , IMAP , SMTP con soporte SSL y un potente analizador MIME:

using(Imap imap = new Imap()) { imap.Connect("imap.server.com"); // or ConnectSSL for SSL imap.Login("user", "password"); imap.SelectInbox(); List uids = imap.Search(Flag.Unseen); foreach (long uid in uids) { IMail mail = new MailBuilder() .CreateFromEml(imap.GetMessageByUID(uid)); Console.WriteLine(mail.Subject); } imap.Close(); } 

Tenga en cuenta que este es un producto comercial que he creado.

Puede descargarlo en https://www.limilabs.com/mail

Uso SharpMimeTools de código libre en mi aplicación, BugTracker.NET. Ha sido muy confiable:

http://anmar.eu.org/projects/sharpmimetools/

Vea los archivos POP3Client.cs, POP3Main.cs e insert_bug.aspx

Recomendaría AdvancedIntellect . Hay componentes para POP3 e IMAP (ASPNetPOP3 y ASPNetIMAP). Buena calidad y apoyo muy receptivo: recuerdo haber recibido respuestas a mis preguntas en un fin de semana.

Es posible que desee comprobar nuestro componente Rebex Mail . Incluye los protocolos IMAP , SMTP , POP3 y el analizador S / MIME .

El POP3 no tiene un concepto de mensajes “no leídos” ni búsqueda de mensajes que coincidan con criterios específicos. POP3 simplemente devuelve todos los mensajes en su bandeja de entrada.

Con IMAP , puede indicar al servidor IMAP que le envíe mensajes recién leídos, mensajes que llegaron desde el momento especificado, mensajes de un usuario específico, etc. No tiene que descargarlo todo al cliente y filtrar allí.

El siguiente código muestra cómo descargar mensajes no leídos del servidor Rebex.Net.Imap utilizando la clase Rebex.Net.Imap .

 // create client, connect and log in Imap client = new Imap(); client.Connect("imap.example.org"); client.Login("username", "password"); // select folder client.SelectFolder("Inbox"); // get message list - envelope headers ImapMessageCollection messages = client.Search ( ImapSearchParameter.HasFlagsNoneOf(ImapMessageFlags.Seen) ); // display info about each message Console.WriteLine("UID | From | To | Subject"); foreach (ImapMessageInfo message in messages) { Console.WriteLine( "{0} | {1} | {2} | {3}", message.UniqueId, message.From, message.To, message.Subject); } // disconnect client.Disconnect(); 

Ejemplo de combinación de criterios de búsqueda múltiples a continuación. Esto devolverá mensajes del último año de más de 100 KB.

 ImapMessageCollection messages = client.Search ( ImapSearchParameter.Arrived(DateTime.Now.AddYears(-1), DateTime.Now), ImapSearchParameter.Size(1024 * 100, Int32.MaxValue) ); 

Puede descargar la versión de prueba de rebex.net/secure-mail.net/download.aspx

Si usa una implementación de código abierto POP3 o algo libremente disponible, tendrá acceso para modificar el código y expandirlo en la dirección necesaria. Un rápido Google dio como resultado este código C # POP3 de Code Project para recuperar mensajes.

Hay algo de poder sobre rodar el tuyo, o al menos extenderlo.

texto alternativo

Lumisoft es de código abierto e incluye clientes IMAP y POP (entre otras cosas). Los he estado utilizando durante años sin problemas.

¿Qué hay de WCF? Es gratis.

Si tiene un servidor de Exchange: http://msdn.microsoft.com/en-us/library/bb397812.aspx

un ejemplo para pop3: http://bartdesmet.net/blogs/bart/archive/2006/09/13/4417.aspx

El correo C # cuesta $ 0 pero también tiene licencia GNU GPL, así que asegúrese de que todo esté bien.

Puede hacerlo utilizando Objetos MailBee.NET: http://www.afterlogic.com/products/net-email-components

Si bien recomendaría utilizar IMAP de hecho, sobre todo porque ofrece soporte IDLE mencionado aquí, usted podría hacer lo mismo con POP3. Hay una breve descripción de ambos enfoques, y una muestra completa para el escenario IMAP IDLE:

http://www.afterlogic.com/wiki/Getting_notifications_about_new_messages_in_mailbox_%28IMAP_IDLE_and_polling%29

Tenga en cuenta que estoy afiliado a AfterLogic, y con gusto lo ayudaremos si necesita ayuda, consulte la opción Solicitar ayuda en nuestro sitio web.

IMAPX2 es el mejor. Usando IMAP puedes controlar las carpetas en un servidor de correo, algo que no podrías hacer con POP. IMAPX es un código fuente abierto que puede examinar y es de uso gratuito.

IMAPX es directo y confiable.