Конвертувати 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‑файлі. У наведеному нижче прикладі коду цей enum використовується для збереження ресурсів у файл та вставки у 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 тижнів у суботу. Код використовує 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 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);

The 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);
}

The 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);
}