Конвертация EML в HTML

Конвертация EML в HTML

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

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

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

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

  1. Используйте метод MailMessage.Load() для загрузки существующего файла в объект MailMessage, указав формат сообщения.
  2. Сохраните загруженный объект MailMessage как HTML файл, используя метод save. Используйте SaveOptions.DefaultHtml() для указания параметров сохранения для HTML формата.
// Инициализировать и загрузить существующий EML файл, указав формат сообщения
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 файл в целевом месте, используя метод Save с параметром 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 для .NET вы можете легко достичь этого, используя перечисление ResourceRenderingMode:

  1. Загрузите сообщение электронной почты из исходного файла, используя метод MapiMessage.Load.
  2. Создайте новый объект HtmlSaveOptions и установите свойство ResourceRenderingMode в EmbedIntoHtml.
  3. Сохраните загруженное сообщение электронной почты как HTML файл, используя метод Save, указав путь к целевому файлу и передав объект 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 файл для дальнейшего использования или манипуляции.

// Загрузить EML файл
var eml = MailMessage.Load("message.eml");
// Найти альтернативный вид с MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// Если альтернативный вид ICS найден, сохраните его в файл
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

Настройка

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

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

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

// Загрузить EML файл
var eml = MailMessage.Load("message.eml");
// Найти альтернативный вид с MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// Если альтернативный вид ICS найден, загрузите его в объект класса Appointment
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Настройка деталей события
appointment.Summary = "На.Customized Event Summary";
appointment.Location = "Настроенное Местоположение";
appointment.Description = "Настроенное Описание События";

// Добавьте или измените участников по мере необходимости
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Сохраните настроенное содержание ICS в файл
appointment.Save("customized_appointment.ics");

Создание паттерна повторения

Следующий пример кода демонстрирует, как создать еженедельный паттерн повторения для назначения, которое происходит каждые 5 недель по субботам. Код использует свойство Recurrence класса 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 для .NET вы можете легко конвертировать EML файлы в формат MHTML для различных целей, таких как архивирование, совместимость, офлайн-просмотр и т. д. Загрузите сообщение электронной почты, используя MailMessage.Load, затем используйте класс MhtSaveOptions в качестве параметра для метода MailMessage.Save, чтобы указать формат выходного файла при сохранении сообщения в отдельный файл:

// Инициализировать и загрузить существующий EML файл, указав формат сообщения
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:

// Загрузить сообщение электронной почты
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Сохранить как MSG
var msgSaveOptions = new MsgSaveOptions();
message.Save("output.msg", msgSaveOptions);
} 

Конвертация EML в OFT

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

// загрузить EML файл для конверсии
var message = MailMessage.Load("My File.eml"); 
// сохранить EML как OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

Добавление EML в PST

Чтобы конвертировать EML файлы в формат таблицы личных данных (PST), загрузите сообщение с помощью метода MapiMessage.Load, создайте выходной файл с помощью PersonalStorage.Create и добавьте электронное письмо в созданную папку «Входящие» в файле хранилища с помощью 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 (OST), что позволяет интегрироваться с Microsoft Outlook. Следующий пример кода демонстрирует, как добавить сообщение EML в OST файл:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Загрузить EML файл
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Добавить сообщение EML в OST файл
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

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

Конвертация EML в VCF

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

// Загрузить EML файл
var eml = MailMessage.Load("message.eml");
// Найти альтернативный вид с MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// Если альтернативный вид VCF найден, сохраните его в файл
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}