EML (сообщения MIME)
EML - это в большинстве случаев MIME-файлы с почтовыми сообщениями. К общим источникам файлов EML относятся сообщения, сохраненные из Outlook Express или Thunderbird, сообщения, загруженные с серверов IMAP или POP3.
Правильная загрузка EML-файла не так проста, как кажется. Вы можете написать реализацию, работающую в 95% случаев в течение нескольких дней. Оставшиеся 5% займут как минимум несколько месяцев ;-). Я знаю, потому что я занимался его разработкой.
Рассмотрим следующие трудности:
- электронные письма в юникоде
- справа налево
- исправление искаженных файлов EML, вызванных известными ошибками в популярных почтовых клиентах и серверах
- работа с S / MIME (зашифрованные и подписанные почтовые сообщения)
- правильно работает с несколькими методами кодирования вложений
- работа с встроенными изображениями и таблицами стилей, встроенными в электронные письма в формате HTML
- убедившись, что он правильно анализирует сообщение о пытке MIME от Майка Криспина (соавтора RFC Mime и IMAP)
- убедившись, что искаженное сообщение не приведет к переполнению буфера или другому отказу приложения
- обработка иерархических сообщений (сообщение с прикрепленными сообщениями)
- убедившись, что он правильно обрабатывает очень большие письма
Созревание такого парсера занимает годы и постоянную обратную связь для его пользователей. В данный момент в .NET Framework нет такого парсера. Пока это не изменится, я бы предложил получить сторонний MIME-парсер от известного поставщика.
В следующем коде используется наш компонент Rebex Secure Mail , но я уверен, что аналогичная задача может быть легко скопирована и с компонентами других поставщиков.
Код основан на Учебник по почтовому сообщению .
// create an instance of MailMessage
MailMessage message = new MailMessage();
// load the message from a local disk file
message.Load("c:\\message.eml");
// load the message from MemoryStream
MemoryStream stream = new MemoryStream();
// TODO: fill the stream, seek to the beginning
message.Load(stream);
MSG (сообщения Outlook)
Формат MSG - это формат сообщений электронной почты, введенный Microsoft в Microsoft Outlook. На сайте Microsoft имеется спецификация формата MSG. Вы также можете попробовать сторонний компонент. Мне известен один компонент формата MSG от IndependentSoft , но я не пробовал его лично. Также наша Rebex Secure Mail версия 1.0.4060.0 или более поздняя также поддерживает формат MSG.