Я ищу существующую библиотеку или примеры кода, чтобы извлечь соответствующие части из структуры сообщения MIME для выполнения анализа текстового содержимого этих частей.
Я объясню:
Я пишу библиотеку (на Python), которая является частью проекта, который должен перебирать очень большое количество сообщений электронной почты через IMAP. Для каждого сообщения необходимо определить, какие части MIME понадобятся для анализа текстового содержимого сообщения, которое требует наименьшего количества разборов (например, предпочтение text / plain вместо text / html или rich text) и без дубликатов. (т. е. если существует text / plain, игнорируйте соответствующий text / html). Также необходимо обратиться к вложенным частям (текстовые вложения, перенаправленные сообщения и т. Д.), И все это без загрузки всего тела сообщения (это занимает слишком много времени и пропускной способности). Позднее конечная цель состоит в том, чтобы извлечь только эти части, чтобы выполнить некоторый статистический и шаблонный анализ текстового содержимого этих сообщений (исключая любую разметку, метаданные, двоичные данные и т. Д.).
Библиотеки и примеры, которые я видел, требуют полного тела сообщения, чтобы собрать структуру сообщения и понять содержание сообщения. Я пытаюсь добиться этого, используя ответ от команды IMAP FETCH с элементом данных BODYSTRUCTURE.
BODYSTRUCTURE должен содержать достаточно информации для достижения моей цели, но хотя структура и возвращенные данные официально документированы в соответствующих RFC (3501, 2822, 2045), количество вложений, комбинаций и различных причуд складывается для выполнения задачи очень нудный и обрезка ошибок.
Кто-нибудь знает какие-либо библиотеки, которые могут помочь в достижении этого или любых примеров кода (желательно на Python, но любой язык подойдет)?