He buscado en la web por días pero parece que no puedo encontrar una buena solución a mi problema:¿Analizar archivos MIME simples de C/C++?
Para uno de mis proyectos estoy buscando un buen (ligero) analizador MIME. Mi cliente proporciona archivos formateados MIME (lineales, sin jerarquía) que contienen 3-4 "partes". La aplicación debe poder dividir esas partes y procesarlas de forma independiente.
Básicamente, esos archivos MIME son como mensajes crudos de correo electrónico, pero sin los encabezados SMTP. En su lugar, comienzan con MIME-Header "MIME-Version: 1.0" y luego siguen las partes.
Estoy usando C++ para la aplicación, por lo que una biblioteca C++ es bienvenida. Una biblioteca C estándar también es bienvenida; pero debe ajustarse a los siguientes criterios:
- estar abiertos (al menos LGPL), no properiaty
- compacto - Sólo necesito el analizador, no hay soporte SMTP/POP3
- entre plataformas (con el objetivo de Windows, Mac OS X y Linux)
Después de días de búsqueda me encontré con las siguientes librerías y razones por las que no usarlos:
- mimetic (C++) --- Aunque esta biblioteca parece completa y para el uso de C++, se basa en glib, que no se compilará correctamente en Windows.
- Vmime (C++) --- Parece completo, pero no hay soporte oficial de Windows. También proporcionan "licencias dobles" ("LGPL comercial" + GPL). Parece estar incluido con Ubuntu y Debian, pero la licencia es confusa.
- mime++ --- Commerical, no compatible con Mac.
- Chilkat Software MIME C++ Library --- Commerical y centrado en Windows.
Realmente no quiero escribir mi propio analizador MIME. MIME está tan extendido que hay debe ser una biblioteca abierta para manejar este formato de archivo de una manera sensata.
Entonces, ¿tienen alguna idea, sugerencia o vínculo?
¡Gracias de antemano!
La estructura MIME es lo suficientemente simple como para que cualquiera pueda escribir un analizador. Por lo general, donde se encuentra con problemas es con los detalles del mensaje; idioma, codificación, etc. Dependiendo de sus necesidades de procesamiento, podría escribir su propio analizador. Sin embargo, si necesita hacer algo complejo, definitivamente debe tratar de encontrar una biblioteca que haga todo el trabajo pesado por usted. – Luke
mimético no se basa en glib. ¿Estás confundiendo mimético con gmime? – uckelman