Преобразовать EML в HTML

Преобразовать EML в HTML

Для интеграции содержимого электронной почты в веб‑приложения преобразование EML в HTML — правильный выбор, обеспечивающий визуально привлекательное отображение писем.

Для преобразования EML в HTML вам потребуются следующие классы:

  • MailMessage класс используется для создания объекта, представляющего электронное сообщение. Он предоставляет доступ к свойствам сообщения, таким как тема, тело, отправитель и адреса получателей и т.д. С его методами вы можете создавать, загружать и разбирать, модифицировать, сохранять электронные письма или выполнять другие операции с ними.
  • SaveOptions класс предоставляет варианты сохранения сообщений электронной почты в различных форматах. Он позволяет пользователям настраивать способ сохранения сообщений электронной почты в разных форматах. С помощью этого класса пользователи могут указывать параметры сохранения вложений, заголовков, метаданных и свойств сообщений, задавать параметры кодировки или выбирать, сохранять ли сообщения с шифрованием.

В приведённом ниже примере кода эти классы работают вместе, чтобы загрузить существующий файл EML и указать формат сообщения как EML. Затем они сохраняют загруженное сообщение электронной почты в виде HTML‑файла, используя указанные параметры сохранения HTML по умолчанию:

  1. Используйте MailMessage.Load() метод для загрузки существующего файла в объект MailMessage с указанием формата сообщения.
  2. Сохраните загруженный объект MailMessage в виде HTML‑файла, используя сохранением метод. Используйте SaveOptions.DefaultHtml() чтобы указать параметры сохранения для формата HTML.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);

Сохранить ресурсы EML в отдельный файл

Aspose.Email предоставляет ResourceRenderingMode перечисление, позволяющее разработчикам управлять ресурсами в HTML‑файле. В приведённом ниже примере кода это перечисление используется для сохранения ресурсов в файл и вставки в HTML тега ‘src’ с путём к этому файлу:

  1. Загрузите сообщение электронной почты из исходного файла с помощью MapiMessage.Load метод.
  2. Создайте экземпляр HtmlSaveOptions с указанными параметрами рендеринга и ресурсов.
  3. Сохраните загруженное сообщение электронной почты в виде HTML‑файла в целевое расположение, используя Сохранить метод с параметром HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Встроить ресурсы в HTML‑файл

В некоторых случаях требуется встраивать ресурсы, такие как изображения, непосредственно в HTML‑файл для беспрепятственного распространения и отображения. С Aspose.Email for .NET вы можете легко сделать это, используя ResourceRenderingMode перечисления:

  1. Загрузите сообщение электронной почты из исходного файла с помощью MapiMessage.Load метод.
  2. Создать новый HtmlSaveOptions объект и установите свойство ResourceRenderingMode в значение EmbedIntoHtml.
  3. Сохраните загруженное сообщение электронной почты в виде HTML‑файла, используя Сохранить метод, указывающий целевой путь к файлу и передающий объект HtmlSaveOptions в качестве параметра для встраивания ресурсов в файл HTML.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Преобразовать EML в ICS

В следующем примере кода показано, как извлечь данные календарного события из файла EML и сохранить их в отдельный файл ICS для дальнейшего использования или обработки.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

Настройка

Aspose.Email for .NET предоставляет инструменты для настройки контента ICS (iCalendar), извлечённого из файлов EML (Электронная почта).

Настроить детали события

В следующем примере кода показано, как задать различные детали встречи, такие как резюме, местоположение и описание. Код использует Appointment класс, представляющий календарные встречи или события в формате ICS (iCalendar). Класс предоставляет свойства и методы для программного создания, изменения и управления календарными событиями.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";

// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");

Создать шаблон повторения

В следующем примере кода показано, как создать недельный шаблон повторения для встречи, при котором встреча происходит каждые 5 недель по субботам. Код использует Повторение свойство Appointment класс, который получает или задает шаблон повторения.

var pattern = new  WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);

appointment.Recurrence = pattern;

Добавить EML в MBOX

MBOX — часто используемый формат для хранения нескольких сообщений электронной почты в одном файле, что делает его подходящим для архивирования и миграции электронных писем. Используйте MboxrdStorageWriter класс для записи сообщений электронной почты в файл MBOX. В следующем примере кода показано, как выполнить эту задачу:

using (var message = MailMessage.Load("inputFile.eml")){
	using (var writer = new MboxrdStorageWriter("output.mbox", false)){
			writer.WriteMessage(message);
	}
} 

Преобразовать EML в MHTML

С помощью Aspose.Email for .NET вы можете легко преобразовать файлы EML в формат MHTML для различных целей, таких как архивирование, совместимость, офлайн‑просмотр и т.д. Загрузите сообщение электронной почты с помощью MailMessage.Load, затем используйте MhtSaveOptions класс в качестве параметра к MailMessage.Save метод для указания формата выходного файла при сохранении сообщения как отдельного файла:

// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);

Этот MhtSaveOptions класс предоставляет различные варианты настройки выходных файлов MHTML в соответствии с вашими требованиями:

  • Сохранить оригинальное форматирование даты. Вы можете выбрать сохранение оригинального форматирования сообщений электронной почты во время процесса конвертации:

    saveOptions.PreserveOriginalDate = true;
    
  • Установить кодировку вывода. Вы можете указать кодировку, используемую при записи файлов MHTML:

    saveOptions.OutputEncoding = Encoding.UTF8; 
    
  • Включить вложения. Это может быть полезно, если вы хотите сохранить вложения при конвертации писем в формат MHTML:

    saveOptions.SaveAttachments = true;
    

Преобразовать EML в MSG

Независимо от того, нужно ли вам мигрировать данные электронной почты, архивировать сообщения или интегрировать с Microsoft Outlook, Aspose.Email предоставляет решения для достижения ваших целей. Файлы MSG широко используются в Microsoft Outlook. Для преобразования EML в MSG используйте MailMessage.Load метод для загрузки существующего файла EML, указывая, как он будет загружен с помощью EmlLoadOptions.

В следующем примере кода показано, как преобразовать файлы EML в формат MSG:

// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
} 

Преобразовать EML в OFT

Для преобразования файлов EML в формат Outlook Template (OFT) загрузите существующее сообщение электронной почты с помощью MailMessage.Load метод и сохранить его с MailMessage.Save указывая параметры по умолчанию для сохранения сообщения в формате OFT:

// load the EML file to be converted
var message = MailMessage.Load("My File.eml"); 
// save EML as a OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

Добавить EML в PST

Для преобразования файлов EML в формат Personal Storage Table (PST) загрузите сообщение с помощью MapiMessage.Load метод, создайте выходной файл с помощью PersonalStorage.Create и добавить электронную почту в созданную папку Inbox в файле хранилища, используя AddMessage:

using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
    using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
  {
        var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
        inbox.AddMessage(msg);
  }
}

Добавить EML в OST

Разработчики могут легко преобразовать файлы EML в формат Outlook Offline Storage Table (OST), обеспечивая интеграцию с Microsoft Outlook. В следующем примере кода показано, как добавить сообщение EML в файл OST:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Load the EML file
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Add the EML message to the OST file
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

Этот EmlLoadOptions параметр указывает дополнительные параметры загрузки файлов EML, такие как сохранение встроенных форматов сообщений, удаление подписей и многое другое.

Преобразовать EML в VCF

Aspose.Email for .NET предлагает возможность преобразовывать файлы EML в формат vCard (VCF), позволяя разработчикам извлекать контактную информацию из сообщений электронной почты. Для этой цели библиотека предоставляет GetAlternateViewContent метод MailMessage класс, позволяющий разработчикам получать доступ к альтернативным представлениям в сообщениях электронной почты и извлекать содержимое VCF, встроенное в файлы EML, для дальнейшего использования:

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}