2009-01-15 34 views
7

¿Cómo leo programáticamente un correo electrónico entrante con .NET. Necesito un método para tomar el contenido del mensaje de correo electrónico (en este caso XML) en un servidor POP y leerlo en mi aplicación.Procesando correo electrónico entrante

Lo ideal sería que esto podría ser resuelto por:

  • código .NET que pueda funcionar como una tarea de fondo en mi servidor web para proceso del correo electrónico.
  • Un servicio que puede ENVIAR los contenidos del correo electrónico a mi servidor web.

Aunque estoy abierto a otras opciones.

EDIT: Copiado de la "no respuesta":

Actualmente, estamos buscando en el uso del correo electrónico cuentas de nuestra empresa de alojamiento ofrece .

Nuestro propio servidor de correo podría ser potencialmente ser una opción, pero es algo así como que tendríamos que contactar al anfitrión.

+0

preguntas similares: * * http://stackoverflow.com/questions/86553/working-with-pop-imap-email-and-net http://stackoverflow.com/questions/126068/how-would-you-implement-database-updates-via-email * http://stackoverflow.com/questions/44383/reading-email-using-pop3-in- c –

+0

Pruebe OpenPop.NET: https://www.nuget.org/packages/OpenPop.NET/ – razon

Respuesta

4

Nos han implementado en realidad sólo el mismo tipo de cosas.

Procesamos el contenido de los mensajes de correo electrónico y enviamos los datos a nuestro CRM a través de un servicio web. Usamos C# con .net 3.5

Para procesar el correo vamos con IMap. Hay algunas bibliotecas de cliente .net en CodeProject. Creo que utilizamos el de LumiSoft.

Probamos WebDav pero no tuvimos mucha suerte. Esto nos dejó con Pop3 o IMap. IMap admite carpetas, que necesitábamos, así que decidimos hacerlo. Estoy seguro de que sería fácil hacer lo mismo con POP3 si su servidor no es compatible con IMap.

Básicamente conectamos nuestro servidor Exchange cada hora y desplegamos cualquier correo electrónico nuevo y lo procesamos. Hasta ahora está funcionando bien.

Editar: También usamos SharpMimeTools para obtener los correos electrónicos en bruto en un formato más útil.

1

Hay bastantes opciones, en caso de que tenga un bus de servicio a su disposición, en su mayoría viene con un adaptador pop3.

O puede usar una api pop3 (easymail de quiksoft es bastante buena). También tiene un gran producto para el procesamiento de rebotes.

Para leer todos los mensajes SMTP. Si posee el servidor de correo, dependiendo del tipo de servidor, hay otras formas de acceder a los mensajes, a veces Apis y complementos personalizados, o el sistema de archivos. ¿Tiene su propio servidor de correo? ¿Qué servidor de correo usas?

Si es posible, no elegiría el protocolo POP, tiene algunas limitaciones, entre otras cosas, como tener una sola carpeta, "obtener/leer" un mensaje elimina el mensaje de la carpeta (lo que significa un proceso para leer los mensajes)) Y otras cosas. Dependiendo de la cantidad de correos que necesite analizar, podría funcionar para usted. IMAP ya sería una mejora.

Con el componente IMAP quiksoft:

//create a new IMAP4 object, connect 
//to a IMAP4 server and login 
IMAP4 imap = new IMAP4(); 
imap.Connect("mail.yourdomain.com"); 
imap.Login("mailbox", "password"); 

//select the inbox and download the envelopes 
imap.SelectMailbox("Inbox"); 
EnvelopeCollection imapEnvelopes; 
imapEnvelopes = imap.GetEnvelopes(); 

//loop through each message 
//and output the subject 
foreach (Envelope imapEnvelope in imapEnvelopes) 
{ 
    //write the subject out to the console 
    Console.WriteLine(imapEnvelope.Subject); 
} 

//close resources 
imap.Logout(); 
0

El servidor de correo electrónico de IceWarp Merak fue genial para esto. Nos permitió configurar un tipo especial de cuenta llamada una cuenta ejecutable. Usted asocia un .exe con la dirección de correo electrónico y elige un montón de cosas para enviar en la línea de comando. Cuando se envía un correo electrónico a esa cuenta, se dispara el ejecutable. El .exe tiene que ser una aplicación de consola y debes tener cuidado de que no cuelgue y lo que no, pero pensé que era la solución perfecta.

Lo usamos para gestionar las estadísticas de procesamiento de Google Analytics y recuperaciones de otros servidores de correo.

+0

+1 para el servidor de correo Merak, es un gran producto. La forma en que permite un plugin dll también es excelente para procesar los rebotes. –

0

siempre se puede DIY A POP 3 Class POP es uno de los protocolos más fácil

Cuestiones relacionadas