2008-10-20 12 views
5

Quiero digerir una respuesta multiparte en C++ enviado de vuelta desde un script PHP. ¿Alguien sabe de un analizador MIME muy liviano que puede hacer esto por mí?simple C++ MIME analizador

Respuesta

15

Sé que esto puede ser demasiado poco, demasiado tarde, pero tenía una necesidad similar. Quería un analizador de mime que solo hiciera la codificación y decodificación del MIME. En aras de la integridad y de la capacidad de Google, pensé que debería poner mis conclusiones aquí. Tenga en cuenta que no estaba interesado en enviar y recibir correo, solo codificar y decodificar MIME. Aquí están las bibliotecas que investigué para C++ MIME:

http://www.vmime.org/ - Parece demasiado. Contiene pop, SMTP, tls, IMAP, podría eliminar esto. Posix y ventanas.

http://codesink.org/mimetic_mime_library.html - parece prometedor. Muy buena aplicación para leer y crear mensajes. Fuimos con este. No demasiado pesado. Tuve que "arreglar" 2 cosas. Primero, para varias partes, el código era simplemente verificar la cadena "multiparte" y no reconocía "multipart/mixed" y no se escribieron las partes. En segundo lugar, tuve que hackear el código de escritura mimeentity. Simplemente estaba escribiendo el campo std :: deque y dado que son cadenas, parece que lo está haciendo alfabéticamente. Esto es un problema porque la versión MIME tiene que ser el primer campo escrito. Así que arreglé esto. También tuve que agregar soporte para Content-Length.

http://www.mozilla.org/mailnews/arch/libmime-description.html - dificultades para encontrar esto. Tuve que descargar todo el paquete. mailnews \ mime \ src

http://www.example-code.com/vcpp/smime.asp - No lo consideré porque no tenía un código fuente y era específico de Windows.

http://www.scalingweb.com/mime_parser.php - No lo consideré porque depende de otra biblioteca de transmisión del autor.

http://httpd.apache.org/docs/2.2/mod/mod_mime.html - No se pudo encontrar esta implementación de C.

Elegí mimética para mis necesidades, aunque he tenido que añadir algunas cosas a ella. Ninguno de los analizadores que encontré manejaba los campos opcionales (Content-Length, etc.) muy bien. También lo necesitaba para soportar múltiples plataformas (Windows, Linux, etc ..)

+1

http://www.scalingweb.com/mime_parser.php parece haber cambiado, ahora lleva a un sitio que vende equipos de pesaje. –

4
No

a sonar mi molino aquí, pero GMime es un analizador MIME muy completo escrito en C que puede manejar la cabecera Content-Length. También se ocupa de DOS y UNIX el fin de línea con facilidad, se ocupa de codificaciones charset cabecera rotos, no requiere que usted pueda leer todo el mensaje en la memoria RAM, compatible con PGP/MIME, etc También tiene un conjunto muy amplio de pruebas unitarias que yo utilizar para evitar cualquier regresión.

La gente lo ha estado construyendo en Windows desde hace bastante tiempo (bajo cygwin y/o mingw32 afaik), pero la semana pasada estuve pasando un tiempo haciendo de Windows una prioridad de primera clase al configurar Visual C++ Archivos de proyecto/solución y asegurarse de que todo se construye.

Imaginé que publicaría aunque ya haya encontrado un analizador MIME para que otras personas que puedan tener una pregunta similar puedan ver otra opción si las soluciones mencionadas no se ajustan a sus necesidades.

0

He estado usando el mime code de cpp-netlib con éxito hasta el momento. Es un bit picky sobre la sintaxis, pero funciona muy bien.