Разбор и анализ структуры сообщений MIME - PullRequest
0 голосов
/ 28 января 2012

Я ищу существующую библиотеку или примеры кода, чтобы извлечь соответствующие части из структуры сообщения MIME для выполнения анализа текстового содержимого этих частей.

Я объясню:

Я пишу библиотеку (на Python), которая является частью проекта, который должен перебирать очень большое количество сообщений электронной почты через IMAP. Для каждого сообщения необходимо определить, какие части MIME понадобятся для анализа текстового содержимого сообщения, которое требует наименьшего количества разборов (например, предпочтение text / plain вместо text / html или rich text) и без дубликатов. (т. е. если существует text / plain, игнорируйте соответствующий text / html). Также необходимо обратиться к вложенным частям (текстовые вложения, перенаправленные сообщения и т. Д.), И все это без загрузки всего тела сообщения (это занимает слишком много времени и пропускной способности). Позднее конечная цель состоит в том, чтобы извлечь только эти части, чтобы выполнить некоторый статистический и шаблонный анализ текстового содержимого этих сообщений (исключая любую разметку, метаданные, двоичные данные и т. Д.).

Библиотеки и примеры, которые я видел, требуют полного тела сообщения, чтобы собрать структуру сообщения и понять содержание сообщения. Я пытаюсь добиться этого, используя ответ от команды IMAP FETCH с элементом данных BODYSTRUCTURE.

BODYSTRUCTURE должен содержать достаточно информации для достижения моей цели, но хотя структура и возвращенные данные официально документированы в соответствующих RFC (3501, 2822, 2045), количество вложений, комбинаций и различных причуд складывается для выполнения задачи очень нудный и обрезка ошибок.

Кто-нибудь знает какие-либо библиотеки, которые могут помочь в достижении этого или любых примеров кода (желательно на Python, но любой язык подойдет)?

Ответы [ 2 ]

1 голос
/ 28 января 2012

Есть что-то, что вы не можете сделать с электронной почтой модуля и субмодулем email.mime?

http://docs.python.org/library/email.html#module-email

0 голосов
/ 19 декабря 2012

Отвечая на мой вопрос для полноты и закрытия этого вопроса.

Я не смог найти ни одной существующей библиотеки, которая отвечала бы требованиям.В итоге я написал свой собственный код для извлечения дерева BODYSTRUCTURE, его синтаксического анализа и сохранения во внутренней структуре.Это дает мне контроль, который мне нужен, чтобы решить, какие именно части сообщения мне нужно загрузить и учесть различные случаи, такие как вложения, пересылки, избыточные части (простой текст или HTML) и т. Д.

...