Створення та збереження файлів Outlook

Aspose.Email підтримує створення файлів Outlook message (MSG). У цій статті пояснюється, як:

Створити та зберегти повідомлення Outlook

The MailMessage клас має Save() метод, який може зберігати файли Outlook MSG на диск або в потік. Наведені нижче фрагменти коду створюють екземпляр MailMessage клас, встановлює властивості, такі як from, to, subject і body. Метод Save() метод приймає ім’я файлу як аргумент. Крім того, повідомлення Outlook можна створювати з стиснене тіло RTF використовуючи MapiConversionOptions

  1. Створіть новий екземпляр MailMessage класу та встановлює властивості From, To, Subject і Body.
  2. Викличте MapiMessage клас FromMailMessage метод, який приймає об’єкт MailMessage тип. FromMailMessage метод конвертує MailMessage у MapiMessage (MSG).
  3. Викличте MapiMessage.Save() метод для збереження файлу MSG.

Напишіть наступний код у обробнику події кліку кнопки у Windows‑додатку.

Створення MSG файлів з вкладеннями

У наведеному вище прикладі, ми створили простий файл MSG. Aspose.Email також підтримує збереження файлів повідомлень з вкладеннями. Все, що потрібно зробити, це додати вкладення до MailMessage екземпляр. Додавайте вкладення, викликавши метод Add() у MailMessage.Attachments колекції. Додайте список ListBox до форми, створеної вище, та додайте дві кнопки — одну для додавання, іншу для видалення вкладень. Додаток, який додає вкладення, працює так:

  1. Коли натискається кнопка Add Attachment, відображається Open File Dialog, який допомагає користувачам переглядати та вибирати вкладення.
  2. Після вибору файлу його повний шлях додається до списку.
  3. Коли створюється MSG файл, шляхи до вкладень беруться зі списку та додаються до MailMessage.Attachments колекція.

Напишіть наступний код у обробнику події кліку кнопки Add Attachment.

Коли кнопка Remove Attachment натиснута, видаліть вибрані елементи зі списку. Напишіть наступний код у обробнику кліку кнопки Remove Attachment.

Додайте код для додавання вкладень у MailMessage екземпляр. Остаточний код функції Write Msg наведений нижче.

Створити MSG файли з тілом у форматі RTF

Ви також можете створювати файли Outlook Message (MSG) з тілями у форматі RTF за допомогою Aspose.Email. Тіло RTF підтримує текстове форматування. Створіть його, встановивши MailMessage.HtmlBody властивість. Коли ви конвертуєте MailMessage екземпляр у MapiMessage у випадку, HTML‑тіло конвертується у RTF. Таким чином, форматування тіла листа зберігається.

Наступний приклад створює файл MSG з тілом у форматі RTF. У HTML‑тілі є один заголовок, застосовано форматування жирним та підкресленим. Це форматування зберігається під час конвертації HTML у RTF.

Стискання RTF для тіла повідомлення MAPI

ПРИМІТКА: Процес стискання може уповільнити продуктивність під час створення повідомлень. Розуміючи це та налаштовуючи прапорець стискання відповідно до конкретних вимог і компромісу між розміром файлу та продуктивністю, розробники можуть ефективно керувати створенням файлів MSG і PST при роботі з електронними листами.

Стискання RTF призначене для зменшення розміру повідомлення, а також отриманих файлів PST (Personal Storage Table), які Microsoft Outlook використовує для зберігання електронних листів та інших даних. Використовуючи стискання RTF при налаштуванні тіла повідомлення, розробники можуть зменшити обсяг пам’яті, необхідний для зберігання електронних листів, або оптимізувати пропускну здатність мережі під час передачі повідомлень.

Для цього були розроблені два перевантажені методи:

  • MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Цей метод дозволяє встановити вміст тіла повідомлення, використовуючи вказаний рядок content і вказуючи тип вмісту тіла (наприклад, простий текст, HTML тощо). Необов’язковий параметр compression — це значення, яке визначає, чи слід стиснути вміст за допомогою RTF‑стиснення. Якщо compression має значення true, вміст буде стиснений, що призведе до меншого розміру повідомлення.

  • MapiMessageItemBase.SetBodyRtf(string content, bool compression): Цей метод конкретно встановлює вміст тіла повідомлення у форматі RTF. Параметр content — це рядок, що представляє RTF‑вміст, який буде встановлений як тіло повідомлення. Як і у попередньому методі, параметр compression визначає, чи слід застосовувати стиснення RTF до вмісту. Якщо compression має значення true, RTF‑вміст буде стиснений для зменшення розміру.

Нижче наведений приклад коду показує, як встановити HTML тіло та залишити його стисненим:

var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);

Також є MapiConversionOptions.UseBodyCompression властивість. Коли ця властивість увімкнена, стискання RTF тіла застосовується під час конвертації MailMessage у MapiMessage, що призводить до зменшення розміру файлу MSG. Приклад коду наведено нижче:

var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);

Зберегти повідомлення у статусі чернетки

Листи зберігаються як чернетки, коли хтось розпочав їх редагування, але бажає повернутися до них, щоб завершити пізніше. Aspose.Email підтримує збереження повідомлень електронної пошти у стані чернетки шляхом встановлення прапорця повідомлення. Нижче наведено приклад коду для збереження Outlook листа (MSG) як чернетки.