Получение достойного парсера MIME было бы, вероятно, хорошим решением. Вы можете попытаться использовать бесплатный анализатор MIME (например, этот из codeproject), но комментарии от автора кода, такие как
Я работал над этим примерно так же
время, когда я работал над классом оболочки
для файлов MSG. Большая разница в
трудность. Где оболочка EML
класс, возможно, занял день, чтобы прочитать
spec и получите право , оболочка MSG
урок занял неделю.
меня заинтересовало качество кода. Я уверен, что вы можете взломать анализатор пантомимы, который правильно анализирует 95% писем в течение нескольких дней / часов. Я также уверен, что получение правых 5% займет месяцы. Подумайте об обработке S / MIME (зашифрованная и подписанная электронная почта), Unicode, искаженных электронных писем, создаваемых некорректно работающими почтовыми клиентами и серверами, нескольких схемах кодирования, проблемах интернационализации, а также о том, что преднамеренно неправильные электронные письма не вызовут сбой в вашем приложении и т. Д. *
Если электронная почта, которую вам нужно проанализировать, поступает из одного источника, быстрого и грязного парсера может быть достаточно. Если вам нужно разобрать электронные письма с дикой природы, может потребоваться лучшее решение.
Я бы порекомендовал наш Rebex Secure Mail компонент , но я уверен, что вы получите достойный результат и с компонентами других поставщиков.
Убедиться в том, что выбранный вами синтаксический анализатор правильно работает с печально известным «Образцом сообщения о пытках Mime», подготовленным Майком Криспином (соавтор RFC MIME и IMAP). Тестовое сообщение отображается в образце MIME Explorer и может быть загружено в установочном пакете.
Следующий код показывает, как читать и анализировать файл EML:
using Rebex.Mail;
MailMessage message = new MailMessage();
message.Load("file.eml");