Рекомендации на парсинге .eml файлы в C#

Это модуль, который я создал очень давно, и он может быть вам полезен:

IPv4Utils

Он обеспечивает по крайней мере CIDR класс с арифметикой подсетей. Проверьте контрольные примеры в конце модуля для примеров.

42
задан adeel825 1 June 2009 в 19:44
поделиться

4 ответа

What you probably need is an email/MIME parser. Parsing all the header field is not very hard, but separating out various MIME types like images, attachments, various text and html parts etc. can get very complex.

We use a third party tool but there are many C# tools/libraries out there. Search for free C# email MIME parser in Google. Like I got this one:

http://www.codeproject.com/Articles/11882/Advanced-MIME-Parser-Creator-Editor http://www.lumisoft.ee/lswww/download/downloads/Net/info.txt

4
ответ дан 26 November 2019 в 23:33
поделиться

Получение приличного парсера MIME, вероятно, будет способ идти. Вы можете попытаться использовать бесплатный парсер MIME (например, этот из CodeProject) Но комментарии от кода автор вроде этого

Я работал над этим примерно так же время, когда я работал на классе обертки Для MSG файлов. Большая разница в Сложность. Где обертка EML класс, может быть, занял день, чтобы прочитать Спец и получить правильно , оболочка MSG класс занял неделю.

заставил меня любопытно относиться к качеству кода. Я уверен, что вы можете взломать мятею парсер, который правильно разрабатывает 95% электронной почты через несколько дней / часов. Я также уверен, что правильно, остальные 5% займут месяцы. Подумайте о обработке S / MIME (зашифрованные и подписанные электронные письма), Unicode, безформированные электронные письма, произведенные по почте по почте и серверам, выпущенные по почте, несколько схемы, связанные с кодировкой, проблемами интернационализации, убедившись, что преднамеренно Mallformed Emails не устраивает ваше приложение и т. Д. ...

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

Я бы порекомендовал наш Rebax Secure Mail Mail , но я уверен, что вы получите достойный результат с компонентами из других продавцов.

Убедившись, что парсер по вашему выбору правильно работает на печально известных «Образец оказания пыток MIME», подготовленный Майком Криспином (соавтором MIME и IMAP RFC). Сообщение тестирования отображается в образце MIME Explorer и может быть в установочном пакете .

Следующий код показывает, как читать и аналог файла EML:

using Rebex.Mail;

MailMessage message = new MailMessage();
message.Load("file.eml");
4
ответ дан 26 November 2019 в 23:33
поделиться

LumiSoft включает в себя синтаксический анализатор Mime .

Sasa также включает синтаксический анализатор Mime.

11
ответ дан 26 November 2019 в 23:33
поделиться

Я разместил пример проекта для иллюстрации этого ответа на Github

CDO COM DLL является частью Windows/IIS и может быть использована в .net. Она обеспечит точный разбор и хорошую объектную модель. Используйте ее в сочетании со ссылкой на ADODB.DLL.

public CDO.Message LoadEmlFromFile(String emlFileName)
{
    CDO.Message msg = new CDO.MessageClass();
    ADODB.Stream stream = new ADODB.StreamClass();

    stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty);
    stream.LoadFromFile(emlFileName);
    stream.Flush();
    msg.DataSource.OpenObject(stream, "_Stream");
    msg.DataSource.Save();

    stream.Close();
    return msg;
}

-- Добавлено в августе 2017 г: Также ознакомьтесь с MimeKit: https://github.com/jstedfast/MimeKit. Он поддерживает .Netstandard, поэтому будет работать кроссплатформенно.

62
ответ дан 26 November 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: