Преобразовать EML в HTML
Преобразовать EML в HTML
Для интеграции содержимого электронной почты в веб‑приложения преобразование EML в HTML — правильный выбор, обеспечивающий визуально привлекательное отображение писем.
Для преобразования EML в HTML вам потребуются следующие классы:
- MailMessage класс используется для создания объекта, представляющего электронное сообщение. Он предоставляет доступ к свойствам сообщения, таким как тема, тело, отправитель и адреса получателей и т.д. С его методами вы можете создавать, загружать и разбирать, модифицировать, сохранять электронные письма или выполнять другие операции с ними.
- SaveOptions класс предоставляет варианты сохранения сообщений электронной почты в различных форматах. Он позволяет пользователям настраивать способ сохранения сообщений электронной почты в разных форматах. С помощью этого класса пользователи могут указывать параметры сохранения вложений, заголовков, метаданных и свойств сообщений, задавать параметры кодировки или выбирать, сохранять ли сообщения с шифрованием.
В приведённом ниже примере кода эти классы работают вместе, чтобы загрузить существующий файл EML и указать формат сообщения как EML. Затем они сохраняют загруженное сообщение электронной почты в виде HTML‑файла, используя указанные параметры сохранения HTML по умолчанию:
- Используйте MailMessage.Load() метод для загрузки существующего файла в объект MailMessage с указанием формата сообщения.
- Сохраните загруженный объект 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’ с путём к этому файлу:
- Загрузите сообщение электронной почты из исходного файла с помощью MapiMessage.Load метод.
- Создайте экземпляр HtmlSaveOptions с указанными параметрами рендеринга и ресурсов.
- Сохраните загруженное сообщение электронной почты в виде 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 перечисления:
- Загрузите сообщение электронной почты из исходного файла с помощью MapiMessage.Load метод.
- Создать новый HtmlSaveOptions объект и установите свойство ResourceRenderingMode в значение EmbedIntoHtml.
- Сохраните загруженное сообщение электронной почты в виде 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);
}