Создание и сохранение файлов Outlook
Обратите внимание, что в статусе черновика Outlook не отображает информацию об отправителе, присвоенную MapiMessage. Если необходимо отобразить информацию об отправителе, следует установить флаг MSGFLAG_READ.
- Создание и сохранение сообщений Outlook
- Создание MSG‑файлов с вложениями
- Создание MSG‑файлов с RTF‑тело
- Сохранить сообщение в статусе черновика
Создать и сохранить сообщения Outlook
Этот MailMessage Создание и сохранение сообщений Outlook Save() класс имеет MailMessage классом, задайте свойства, такие как from, to, subject и body. Метод, который может сохранять файлы Outlook MSG на диск или в поток. Ниже приведён фрагмент кода, создающий экземпляр Save() метод принимает имя файла в качестве аргумента. Кроме того, сообщения Outlook могут быть созданы с сжатого тела RTF используя MapiConversionOptions.
- Создайте новый экземпляр MailMessage и задаёт свойства From, To, Subject и Body.
- Вызвать MapiMessage класс FromMailMessage принимает объект класса MailMessage тип. Метод FromMailMessage метод преобразует MailMessage в MapiMessage (MSG).
- Вызвать MapiMessage.Save() метод для сохранения файла MSG.
Вставьте следующий код в обработчик события Click кнопки в Windows‑приложении.
Создать MSG‑файлы с вложениями
В приведённом выше примере, мы создали простой файл MSG. Aspose.Email также поддерживает сохранение файлов сообщений с вложениями. Всё, что нужно сделать — добавить вложения к MailMessage экземпляр. Добавляйте вложения, вызывая метод Add() у MailMessage.Attachments коллекцию. Добавьте ListBox в форму, созданную выше, и две кнопки — одну для добавления, другую для удаления вложений. Приложение, которое добавляет вложения, работает так:
- При щелчке по кнопке Add Attachment отображается Open File Dialog, позволяющий пользователям просматривать и выбирать вложения.
- После выбора файла его полный путь добавляется в список.
- Когда MSG‑файл создаётся, пути к вложениям берутся из списка и добавляются в MailMessage.Attachments коллекцию.
Напишите следующий код в обработчике нажатия кнопки Add Attachment.
При нажатии кнопки Remove Attachment удалите выбранные элементы из ListBox. Напишите следующий код в обработчике нажатия кнопки 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) как черновик.