Конвертируйте 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-файла и добавление его в новую папку:

  1. Создайте экземпляр объекта PersonalStorage, представляющего новый файл PST, используя Create метод PersonalStorage class.
  2. Откройте корневую папку файла PST и добавьте в нее подпапку, используя AddSubFolder метод FolderInfo class.
  3. Загрузите содержимое HTML-файла в MapiMessage объект, использующий Load метод с экземпляром HtmlLoadOptions чтобы указать, что содержимое находится в формате HTML.
  4. Добавьте загруженный объект 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-файл:

  1. Загрузите существующий OST-файл с помощью FromFile метод PersonalStorage класс, используемый для представления файла хранения, в котором будут храниться сообщения электронной почты.
  2. Загрузите HTML-файл с помощью Load метод MapiMessage класс, представляющий сообщение электронной почты в формате Microsoft Outlook.
  3. Specify HtmlLoadOptions чтобы включить дополнительные опции при загрузке MailMessage из формата HTML.
  4. Извлеките корневую папку OST-файла с помощью RootFolder собственность PersonalStorage object.
  5. Получите папку «Входящие» в OST-файле, используя GetSubFolder метод в корневой папке.
  6. Добавьте загруженный объект 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:

  1. Прочитайте содержимое HTML-файла в строковую переменную с помощью метода File.readAllText.
  2. Создайте новый объект MapiContact, создав экземпляр MapiContact class.
  3. Задайте свойства контакта: отображаемое имя, адрес электронной почты.
  4. Настройте содержимое тела контакта в формате HTML, используя SetBodyContent.
  5. Сохраните контакт в виде файла 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)