2010-05-08 19 views
5

Estoy planeando escribir una aplicación que debe manejar los correos entrantes. Básicamente, actuará más como un sistema de venta de entradas que como un correo web, por lo que solo me interesa recibir correos electrónicos y no enviarlos.Decodificación MIME (HTML + archivos adjuntos)

He creado un prototipo simple que descarga correos y muestra el texto con archivos adjuntos descargables en una página web, pero manejar los correos de Outlook y otros es más complicado. He analizado algunos de los sistemas de emisión de código abierto, pero la mayoría del código está vinculado al sistema y es difícil separarlo.

¿Hay una biblioteca que entienda el correo "rico" y simplifique este trabajo? Preferiblemente en Python, Java, Ruby o Perl. También estoy abierto a sugerencias para cualquier cliente de correo de línea de comando que pueda usarse para esto, ya que el sistema no recibirá grandes cantidades de correo y puede permitirse iniciar procesos externos.

Editar:

que sé de las bibliotecas estándar de correo en Python y Java y puede manejar el correo en sí, pero estoy buscando una biblioteca que me pueda ayudar con los mensajes de correo electrónico "ricos" creadas por Outlook/Thunderbird que contiene formato e imágenes en línea.

+0

Una biblioteca para ayudarlo a hacer * qué * con ellos? No son especiales. Los mensajes son HTML y las imágenes en línea están en la estructura MIME. – hobbs

+0

Outlook puede enviar correos electrónicos tanto en HTML como en su propio formato "Rich", que es similar al RTF, creo. Por supuesto, puedo hacer algo que funcione, pero me sentiría más cómodo si hubiera una biblioteca que haya sido probada con correo de un rango de clientes de correo –

+0

HTML es relativamente trivial, pero también hay otras cosas que manejar. Outlook puede enviar correos que contengan un archivo de "Formato de encapsulación neutral al transporte" (http://support.microsoft.com/kb/269186), RTF y otros estándares de propiedad. Este problema debe haber sido resuelto por los autores de clientes de correo antes, por lo que me gustaría reutilizar su trabajo. –

Respuesta

0

Python tiene el paquete email acertadamente llamado para manejar mensajes de correo electrónico.

+0

Gracias, pero no es el análisis MIME real el problema, sino la conversión de correos electrónicos creados por Outlook con imágenes en línea, etc. a HTML estándar. –

+0

A menos que haya bibliotecas listas para esto, es casi trivial ya que HTML también admite imágenes en línea. –

1

Hay varios paquetes de manejo de correo electrónico en la biblioteca estándar de Python. No he trabajado mucho con ellos, por lo que no estoy seguro de si hacen lo que pretende, pero si aún no lo ha hecho, le sugiero que eche un vistazo a, por ejemplo, el email package.

Si buscas algo más alto que eso, estoy seguro de que hay bibliotecas de terceros disponibles.

+0

Gracias, pero esas bibliotecas se concentran principalmente en la decodificación de correos electrónicos, y estoy buscando algo que pueda manejar correos "ricos" creados por Outlook, Thunderbird, etc. con imágenes en línea y texto formateado. –

+0

Quizás usted sabía esto, pero los correos electrónicos "ricos" son realmente solo mensajes MIME multiparte. El texto del cuerpo HTML es una parte, y cada imagen en línea es otra parte. Si lo que quiere hacer con estos mensajes es razonablemente simple, probablemente podría simplemente escribir un script rápido para crear un objeto 'email.MIMEMultipart' del mensaje y hacer lo que quiera con él. –

0

PHP tiene las funciones imap con imap_fetchstructure y imap_fetchbody puede manejar todo tipo de correos electrónicos, pero es un poco difícil.

U también puede mirar http://www.squirrelmail.org/ y estafa la parte de vista de correo electrónico.

1

Para Perl, consulte Ricardo Signes 'Email::MIME para analizar mensajes multiparte. Consulte walk_parts, aplica de forma recursiva una devolución de llamada a cada parte de un mensaje de varias partes.

0

El Zend Framework tiene un paquete llamado Zend_Mail que puede manejar mensajes de correo electrónico con copias, archivos adjuntos, contenido MIME y mensajes de correo electrónico HTML

El enlace es here

0

Lo que deseas no está disponible en este momento en Java (en lo como sé), debe recibir la secuencia de datos de correo electrónico y crear su propio contenedor para las bibliotecas de analizador de correo electrónico.

He creado solución similar en Java que se lleva en la corriente de datos de correo electrónico entrante y da hacia fuera un objeto de correo electrónico que contiene el cuerpo del mensaje (texto plano y HTML ambos), archivos adjuntos, etc.

Es capaz de manejar correos de todo de los clientes de correo electrónico que conozco al menos.

Uso mime4j (analizador de flujo de datos de correo electrónico) para mi tarea y es mucho mejor que java mail api.

Cuestiones relacionadas