Конвертируйте HTML в другие форматы
Конвертировать HTML в EML
Aspose.Email для .NET предоставляет метод преобразования файлов HTML в формат EML с помощью MailMessage.Load and MailMessage.Save методы загрузки существующего HTML-файла и его сохранения в формате EML соответственно:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.eml", SaveOptions.DefaultEml);
В примере кода HtmlLoadOptions класс позволяет указать дополнительные параметры при загрузке MailMessage из формата HTML. Следующий пример кода демонстрирует использование этого класса. В примере задано текстовое представление тела сообщения:
// Create an instance of HtmlLoadOptions
var loadOptions = new HtmlLoadOptions();
// Set the ShouldAddPlainTextView property to true to generate a plain text view along with HTML
loadOptions.ShouldAddPlainTextView = true;
// Load an HTML file
var mailMessage = MailMessage.Load("input.html", loadOptions);
// Access the plain text view of the email message
var plainTextView = mailMessage.GetAlternateViewContent("text/plain");
// Print or further process the plain text view
Console.WriteLine("Plain Text View:");
Console.WriteLine(plainTextView);
Конвертируйте HTML в EMLX
Вы можете легко конвертировать HTML-файлы в EMLX. Для этого типа преобразования также доступны все свойства и классы, предоставляемые API для преобразования HTML в EML:
var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);
Дополнительные настройки см. Конвертировать HTML в EML paragraph.
Конвертируйте HTML в ICS
Для выполнения задачи библиотека предлагает Appointment класс для представления календарных событий и управления ими. В следующем примере кода показано, как создать HTML-содержимое формы встречи и сохранить его в формате файла ICS (iCalendar):
// Sample HTML content
var htmlContent = File.ReadAllText("content.html");
// Create and initialize an instance of the Appointment class
var appointment = new Appointment(
"Meeting Room 3 at Office Headquarters",// Location
"Monthly Meeting", // Summary
"Please confirm your availability.", // Description
new DateTime(2015, 2, 8, 13, 0, 0), // Start date
new DateTime(2015, 2, 8, 14, 0, 0), // End date
"from@domain.com", // Organizer
"attendees@domain.com")
{
HtmlDescription = htmlContent
};
// Save the event to an ICS file
appointment.Save("output.ics", AppointmentSaveFormat.Ics);
Генерация MBOX из HTML-контента
Чтобы выполнить преобразование HTML в MBOX, используйте Load метод MailMessage класс, указывающий путь к файлу содержимого HTML и экземпляр HtmlLoadOptions. Этот метод анализирует содержимое HTML и генерирует соответствующий объект MailMessage, сохраняя структуру и форматирование исходного HTML. После загрузки содержимого HTML в объект MailMessage запишите сообщение в файл MBOX, используя MboxrdStorageWriter class:
using (var eml = MailMessage.Load("content.html", new HtmlLoadOptions())){
using (var writer = new MboxrdStorageWriter("output.mbox", false)){
writer.WriteMessage(eml);
}
}
Конвертировать HTML в MHTML
Используйте Load метод MailMessage класс для загрузки существующего файла с указанием пути к нему и экземпляра HtmlLoadOptions. Этот метод анализирует содержимое HTML и генерирует соответствующий объект MailMessage, сохраняя структуру и форматирование исходного HTML. После загрузки содержимого HTML в объект MailMessage разработчики могут сохранить его в виде файла MHTML, используя Save метод, указывающий желаемый путь к выходному файлу и использующий SaveOptions.DefaultMhtml option:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);
The MhtSaveOptions класс предоставляет множество опций для настройки поведения и параметров выходного файла MHTML вместо SaveOptions.defaultMhtml. С его помощью properties, вы можете указать дополнительные параметры при сохранении MailMessage в формате MHTML. Самые популярные из них:
- MhtFormatOptions - Позволяет настроить способ сохранения сообщения электронной почты в формате MHT в соответствии с вашими потребностями.
- SaveAttachments - Определяет или задает значение, указывающее, следует ли сохранять вложения.
- SaveAllHeaders - Определяет, нужно ли сохранять все заголовки в выходном файле mhtml или нет. Значение по умолчанию — false.
- PreserveOriginalDate - Определяет, нужно ли сохранять исходную дату в почтовом сообщении при сохранении или нет. Значение по умолчанию — true.
В следующем примере кода показано, как можно использовать эти свойства:
var mhtSaveOprtions = new MhtSaveOptions
{
MhtFormatOptions = MhtFormatOptions.WriteHeader,
SaveAttachments = true,
SaveAllHeaders = true,
PreserveOriginalDate = true
}
Конвертировать HTML в MSG
После загрузки содержимого HTML в объект MailMessage сохраните его как файл MSG, используя Save метод, указывающий желаемый путь к выходному файлу и использующий SaveOptions.DefaultMsgUnicode вариант. Эта опция гарантирует сохранение выходного файла в формате MSG с кодировкой Unicode.
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.msg", SaveOptions.DefaultMsgUnicode);
Кроме того, Aspose.Email для .NET предлагает ряд дополнительных функций и опций для преобразования HTML в MSG:
Конвертируйте HTML в OFT
После загрузки содержимого HTML в объект MailMessage сохраните его как файл OFT, используя Save метод, указывающий желаемый путь к выходному файлу и использующий SaveOptions.DefaultOft option:
var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);
Добавить сообщение с исходным HTML-содержимым в PST
Преобразование HTML в PST включает создание нового файла PST (Personal Storage Table) с новой папкой, загрузку HTML-файла и добавление его в новую папку:
- Создайте экземпляр объекта PersonalStorage, представляющего новый файл PST, используя Create метод PersonalStorage class.
- Откройте корневую папку файла PST и добавьте в нее подпапку, используя AddSubFolder метод FolderInfo class.
- Загрузите содержимое HTML-файла в MapiMessage объект, использующий Load метод с экземпляром HtmlLoadOptions чтобы указать, что содержимое находится в формате HTML.
- Добавьте загруженный объект MapiMessage (представляющий содержимое HTML) в папку в файле PST, используя AddMessage method.
using (var pst = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
{
var inbox = pst.RootFolder.AddSubFolder("Inbox");
var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
inbox.AddMessage(msg);
}
Добавить сообщение с исходным HTML-содержимым в OST
В следующем примере кода с пошаговыми инструкциями показано, как эти компоненты работают вместе для добавления HTML-содержимого в OST-файл:
- Загрузите существующий OST-файл с помощью FromFile метод PersonalStorage класс, используемый для представления файла хранения, в котором будут храниться сообщения электронной почты.
- Загрузите HTML-файл с помощью Load метод MapiMessage класс, представляющий сообщение электронной почты в формате Microsoft Outlook.
- Specify HtmlLoadOptions чтобы включить дополнительные опции при загрузке MailMessage из формата HTML.
- Извлеките корневую папку OST-файла с помощью RootFolder собственность PersonalStorage object.
- Получите папку «Входящие» в OST-файле, используя GetSubFolder метод в корневой папке.
- Добавьте загруженный объект MapiMessage (представляющий содержимое HTML) в папку «Входящие», используя AddMessage метод в папке.
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
folderInfo.AddMessage(msg);
}
Конвертировать HTML в VCF
В следующем примере кода показано, как создать контактный элемент, заполнить его содержимым HTML и сохранить в файле VCF:
- Прочитайте содержимое HTML-файла в строковую переменную с помощью метода File.readAllText.
- Создайте новый объект MapiContact, создав экземпляр MapiContact class.
- Задайте свойства контакта: отображаемое имя, адрес электронной почты.
- Настройте содержимое тела контакта в формате HTML, используя SetBodyContent.
- Сохраните контакт в виде файла VCF, используя Save method.
var content = File.ReadAllText("content.html");
// Create a new MapiContact
var contact = new MapiContact();
contact.NameInfo.DisplayName = "John Doe";
contact.ElectronicAddresses.Email1.EmailAddress = "john.doe@example.com";
contact.SetBodyContent(content, BodyContentType.Html);
// Save the contact to a VCF file
contact.Save("contact.vcf", ContactSaveFormat.VCard)