2011-01-06 28 views
5

Estoy buscando una solución que me permita leer correos electrónicos entrantes. Los tres métodos que se me ocurre hacer esto en este momento son:¿Cómo leo el correo entrante usando C#

  1. Crear un servidor de correo electrónico de análisis correos electrónicos
  2. gancho en un servidor de intercambio existente
  3. gancho en perspectiva que ya está configurado con un correo electrónico cuenta

¿Cuál es la mejor manera de hacerlo? ¿Y cómo se puede implementar?

Gracias

+0

Creo que esto realmente depende de lo que pretendas hacer con el correo electrónico. Si está creando una aplicación web, la encuesta, o el uso de un servicio para recibir correos electrónicos entrantes, lo ayudarán. Si realmente desea interactuar con el correo electrónico desde la perspectiva de Outlook, la creación de un complemento puede ayudar. –

+0

@Steve Quiero poder leer el correo (con datos adjuntos), analizarlo y luego enviar una respuesta automática. – Chris

Respuesta

9

Si ya está tratando con un servidor de Exchange como el anfitrión buzón Yo sugeriría que el aprovechamiento a través de IMAP o acceso POP (preferido). Recientemente desarrollé una solución que accede a un buzón de correo específico a través de AfterLogic's MailBee.NET IMAP component, que creo que vale la pena la recomendación. Tienen una versión de prueba estándar y precios razonables. Además, si realiza esta ruta, la automatización POP o IMAP es lo suficientemente flexible para funcionar con casi cualquier plataforma de servidor de buzones; No tiene que estar limitado a los entornos de Exchange.

También hay componentes .NET IMAP gratuitos que pueden hacer el trabajo también. En mi investigación limitada, encontré que las alternativas gratuitas no cumplían con todos mis requisitos o no eran tan fáciles de aprender, pero su situación puede diferir. Para completar, aquí hay una lista de bibliotecas gratuitas IMAP/alternativo he considerado antes de decidirse a gastar el dinero en MailBee:

Para abordar la segunda parte de su pregunta ... La implementación en mi proyecto reciente implicó escribir una aplicación de consola muy simple que hace referencia a e MailBee.NET biblioteca IMAP. La aplicación de consola tiene un archivo de configuración estándar y acepta argumentos de línea de comandos como parámetros. Definimos las tareas programadas de Windows para ejecutar la aplicación de consola de acuerdo con las necesidades de nuestro proceso. Estoy seguro de que podría hacer esto de muchas otras formas, pero este fue el enfoque más simple para nuestras necesidades.

+0

+1 para MailBee, también lo usamos. – PhilPursglove

+0

Dado los comentarios anteriores, diría que esta respuesta es excelente, aunque no olvide que hay maneras de enviar el correo electrónico directamente sin tener que sondear. Puede configurar un servidor de correo para dirigir el correo electrónico como una solicitud HTTP o usar un servicio de terceros para hacer esto también (no voy a mencionar ninguno aquí porque ejecuto uno, pero estoy seguro de que puede encontrarlos). –

2

Utilice el servidor IMAP existente y IMAP component para eso.

La creación de su propio servidor IMAP es un gran riesgo de seguridad en mi opinión.

hay componentes libres, pero la mayoría de ellos tienen problemas con los caracteres nacionales y los mensajes de correo electrónico 'no estándar' ... y no hay ninguna ayuda (LumiSoft.Net es abandonado por casi 2 años)

using(Imap imap = new Imap()) 
{ 
    imap.Connect("imap.server.com"); 
    imap.Login("user", "password"); 

    imap.SelectInbox(); 
    List<long> uidList = imap.Search(Flag.Unseen); 
    foreach (long uid in uidList) 
    { 
     IMail email = new MailBuilder() 
      .CreateFromEml(imap.GetMessageByUID(uid)); 
     Console.WriteLine(email.Subject); 
     Console.WriteLine(email.Attachments.Count); 
    } 
    imap.Close(); 
} 

Mail.dll también incluye el componente SMTP y template engine para que pueda enviar respuestas fácilmente.

Descargo de responsabilidad: Estoy involucrado en el desarrollo de este producto comercial.

5

Sé que esto es un hilo viejo, pero que quería añadir un enlace a una gran biblioteca IMAP de código abierto llamado ImapX2: http://imapx.codeplex.com/

Probé la mayoría de los enlaces en este hilo para diversos grados de éxito, pero he encontrado que la biblioteca ImapX2 funciona mejor según mis necesidades.

Cuestiones relacionadas