Извлечение содержимого из документа MHT
Кто-нибудь знает какие-либо библиотеки для работы с файлами MHT ( MIME-файлами из нескольких частей) в.NET? Мне нужно программно извлечь содержимое из существующего файла MHT, содержащего веб-сайт Flash. Я не смог найти ни одной такой библиотеки.
Кроме того, если в.NET есть собственный способ, о котором я не знаю, пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ: я знаю, что класс MailMessage поддерживает сообщения MIME из нескольких частей через свойство AlternateViews. Класс AlternateView представляет альтернативные представления в MIME-сообщении из нескольких частей. Я хотел бы верить, что эти знания можно использовать для создания чего-либо с использованием кода, встроенного в.NET Framework. Я просто не смог найти правильную комбинацию, чтобы заставить ее работать, поэтому я начинаю терять веру. Кто-нибудь знает, возможно ли извлечь содержимое файла MHT через AlternateView и другие связанные классы? Например, было бы неплохо, если бы можно было создать экземпляр класса MailMessage из потока.
3 ответа
Возможно, вас заинтересует мой проект разбора MIME на github (написан на C#)
https://github.com/smithimage/MIMER/
Также есть пакет Nuget:
http://www.lumisoft.ee/lswww/ENG/Products/Mail_Server/mail_index_eng.aspx?type=info
Это почтовый сервер с открытым исходным кодом, который имеет хороший Mime Parser.
Дэвид Бенко проделал большую работу здесь, в своем проекте GitHub. Недавно я столкнулся с этой проблемой, где у меня был HTML, который нужно было преобразовать в файл HTML. для этого я использовал HTMLAgility pack dll для извлечения контента из файла mhtml и подачи этого контента в библиотеку Дэвида:
string filePath = @"D:\Temp\myfile.mhtml";
var doc = new HtmlDocument();
doc.Load(filePath);
string mhtml = doc.DocumentNode.OuterHtml;
MHTMLParser parser = new MHTMLParser(mhtml);
string htmlContent = parser.getHTMLText();
System.IO.File.WriteAllText(@"D:\Temp\file.html", htmlContent);
Буду очень признателен, если кто-нибудь сможет проверить этот подход. Ура Вакар