Създаване и запазване на Outlook файлове
Aspose.Email поддържа създаването на Outlook съобщения (MSG) файлове. Тази статия обяснява как да:
- Създаване и запазване на Outlook съобщения
- Създаване на MSG файлове с прикачени файлове
- Създаване на MSG файлове с RTF тяло
- Записване на съобщението като чернова
Създаване и запазване на Outlook съобщения
Този MailMessage клас има Save() метод, който може да запази Outlook MSG файлове на диск или поток. Кодовите фрагменти по-долу създават екземпляр на MailMessage клас, задайте свойства като from, to, subject и body. Методът 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 съобщения (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 и зададете типа на съдържанието (например plain text, 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) като чернова.