Я искал веб в течение нескольких дней, но я не могу найти подходящее решение для своей проблемы:Анализ простых MIME-файлов с C/C++?
Для одного из моих проектов я ищу хороший (легкий) MIME-парсер. Мой клиент предоставляет файлы в формате MIME (линейные, без иерархии), которые содержат 3-4 «части». Приложение должно иметь возможность разделить эти части и обрабатывать их независимо.
В основном эти файлы MIME похожи на сырые сообщения электронной почты, но без заголовков SMTP. Вместо этого они начинаются с MIME-заголовка «MIME-Version: 1.0», после чего детали следуют.
Я использую C++ для приложения, поэтому можно использовать библиотеку C++. Также приветствуется стандартная библиотека C; но он должен соответствовать следующим критериям:
- быть открытым (по крайней мере, LGPL), не properiaty
- Compact - я просто нужен анализатор, нет поддержки SMTP/POP3
- Cross-Platform (таргетинг для Windows, Mac OS X и Linux)
После нескольких дней поисков я нашел следующие LIBS и причины, чтобы не использовать их:
- mimetic (C++) --- Хотя эта библиотека кажется полной и для использования на C++, она основана на glib, который не будет правильно компилироваться в Windows.
- Vmime (C++) --- Похоже, что официальной поддержки Windows нет. Также они обеспечивают «двойное лицензирование» («коммерческий LGPL» + GPL). Кажется, он будет включен в Ubuntu и Debian, но лицензирование запутывает.
- mime++ --- Коммерческая, без поддержки Mac.
- Chilkat Software MIME C++ Library --- Коммерческая и сосредоточена на Windows.
Я не хочу писать собственный MIME-парсер. MIME настолько широко распространен, что должен быть быть некоторой открытой библиотекой, чтобы обрабатывать этот формат файла разумным способом.
Итак, у вас есть идеи, предложения или ссылки?
Заранее благодарен!
Структура MIME достаточно проста, чтобы любой мог писать парсер. Обычно, когда вы сталкиваетесь с проблемами, это детали сообщения; язык, кодирование и т. д. В зависимости от ваших потребностей в обработке вы можете написать собственный парсер. Однако, если вам нужно сделать что-нибудь сложное, вам обязательно нужно найти библиотеку, которая сделает весь тяжелый подъем для вас. – Luke
Миметик не основан на glib. Вы смешиваете миметик с gmime? – uckelman