Управління повідомленнями Outlook
Зберегти листи у форматі HTML
Aspose.Email дозволяє зберігати ресурси електронної пошти з відносними шляхами під час експорту повідомлень у формат HTML. Ця функція забезпечує більшу гнучкість у тому, як ресурси пов’язуються у вихідному HTML‑файлі, полегшуючи спільний доступ і відображення збережених листів на різних системах. Щоб зберігати ресурси з відносними шляхами, використовуйте HtmlSaveOptions.UseRelativePathToResources властивість. Значення властивості за замовчуванням — false (ресурси зберігаються з абсолютними шляхами). При встановленні true, ресурси зберігаються з відносними шляхами.
HTML‑файли з відносними шляхами більш портативні і їх можна коректно переглядати незалежно від структури файлів у середовищі розміщення. Ви можете обирати між абсолютними та відносними шляхами залежно від вимог. Ви можете визначити власні шляхи для ресурсів, використовуючи ResourceHtmlRendering подія.
Наведений приклад коду демонструє, як зберегти лист з відносним шляхом до ресурсів за замовчуванням:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
У цьому випадку ресурси будуть збережені у папці [html file name]_files, за тим же шляхом, що й файл .html, і HTML буде посилатися на ресурси через відносні шляхи.
Наведений приклад коду демонструє, як зберегти з абсолютним шляхом до ресурсів:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = false
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
Як і в першому випадку, ресурси за замовчуванням будуть збережені у папці [html file name]_files, проте HTML буде посилатися на ресурси за допомогою абсолютних шляхів.
Використовуючи ResourceHtmlRendering подія, ви можете встановити кастомні відносні або абсолютні шляхи для ресурсів. При налаштуванні шляхів за допомогою ResourceHtmlRendering обробник події, і оскільки UseRelativePathToResources встановлено в true, вам слід призначити відносний шлях до PathToResourceFile властивість для забезпечення коректного посилання.
Наведений приклад коду демонструє, як вказати власний відносний шлях за допомогою події ResourceHtmlRendering
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
if (o is AttachmentBase attachment)
{
// Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
}
};
msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);
Конвертувати MSG у MIME повідомлення
API Aspose.Email забезпечує можливість конвертування файлів MSG у MIME‑повідомлення за допомогою ToMailMessage метод.
Встановити тайм-аути для конвертації та завантаження повідомлень
Наступні можливості дозволять встановити тайм-аут у мілісекундах для процесу конвертації та завантаження:
-
MailConversionOptions.Timeout властивість — обмежує час у мілісекундах під час конвертації повідомлення.
-
MailConversionOptions.TimeoutReached - Піднімається, якщо час вичерпано під час конвертування у MailMessage.
-
MsgLoadOptions.Timeout - Обмежує час у мілісекундах під час конвертування повідомлення.
-
MsgLoadOptions.TimeoutReached - Піднімається, якщо час вичерпано під час конвертування у MailMessage.
Нижче наведений приклад коду покаже, як встановити тайм-аут під час конвертації повідомлення:
var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;
options.TimeoutReached += (object sender, EventArgs args) =>
{
string subj = (sender as MailMessage).Subject;
// Set a flag indicating the timeout was reached
isTimedOut = true;
};
var mailMessage = mapiMessage.ToMailMessage(options);
Конвертація MSG у EML із збереженням тіла RTF
Конвертація файлу MSG у EML із збереженням тіла RTF може бути виконана двома способами:
-
за допомогою MsgLoadOptions.PreserveRtfContent властивість MsgLoadOptions class;
-
за допомогою MailConversionOptions.PreserveRtfContent властивість MailConversionOptions class;
Обидві властивості отримують або встановлюють значення, що вказує, чи зберігати тіло rtf у MailMessage.
Наведені фрагменти коду показують, як конвертувати файл MSG у EML та зберегти тіло RTF:
var loadOptions = new MsgLoadOptions
{
PreserveRtfContent = true
};
var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
PreserveRtfContent = true
};
var msg = MapiMessage.Load("my.msg");
var eml = msg.ToMailMessage(conversionOptions);
Обробка файлів шаблонів Outlook (.OFT)
Шаблони Outlook дуже корисні, коли потрібно надсилати подібне електронне повідомлення знову і знову. Замість того, щоб кожного разу готувати повідомлення з нуля, спочатку підготуйте його в Outlook і збережіть як шаблон Outlook (OFT). Після цього, коли потрібно надіслати повідомлення, ви можете створити його з шаблону, заощаджуючи час на повторне написання того самого тексту в тілі чи темі, встановленні форматування тощо. Aspose.Email’s MailMessage клас можна використовувати для завантаження та читання файлу шаблону Outlook (OFT). Після завантаження шаблону Outlook в екземпляр MailMessage клас, ви можете оновити відправника, одержувача, тіло, тему та інші властивості. Після оновлення властивостей:
- Надішліть електронний лист, використовуючи SmtpClient клас або
- Зберегти повідомлення у форматі MSG та виконати подальші оновлення/перевірку за допомогою Microsoft Outlook.
У наведених нижче прикладах коду ми:
- Завантажте шаблон, використовуючи MailMessage клас.
- Оновити деякі властивості.
- Зберегти повідомлення у форматі MSG.
Наведений фрагмент коду показує, як завантажити файл OFT, оновити повідомлення та зберегти його у форматі MSG.
Зберегти файли MSG як шаблони
У наведеному фрагменті коду показано, як зберегти файл Outlook MSG як шаблон.
Визначення типу MAPI повідомлення (OFT або MSG)
Під час завантаження об’єкта MapiMessage з файлу може знадобитися визначити, чи є завантажене повідомлення файлом‑шаблоном чи звичайним файлом електронної пошти. За допомогою IsTemplate властивість MapiMessage клас, ви можете точно визначити, чи є електронний лист шаблоном чи ні. Ця функція може бути корисною при обробці різних типів файлів електронної пошти в додатках і системах.
Нижче наведений приклад коду демонструє, як визначити, чи є MapiMessage у форматі OFT чи MSG:
var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false
var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true
Зберегти MapiMessage або MailMessage у форматі OFT
The SaveOptions клас дозволяє вказувати додаткові параметри під час збереження MailMessage або MapiMessage у певному форматі.
Наступний приклад коду демонструє, як зберегти повідомлення у формат OFT:
// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
eml.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
eml.Save("message.oft", saveOptions);
}
// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
msg.Save("message.oft", SaveOptions.DefaultOft);
// or alternative way #2
var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
// or alternative way #3
saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
msg.Save("message.oft", saveOptions);
}
Керування цифрово підписаними повідомленнями
Aspose.Email реалізує повний алгоритм об’єкта електронної пошти S/MIME. Це надає API повний контроль над збереженням цифрових підписів під час конвертації повідомлень між форматами.
Зберегти підпис під час конвертації EML у MSG
Aspose.Email зберігає цифровий підпис під час конвертації з EML у MSG. У наведеному фрагменті коду показано, як здійснити конвертацію з EML у MSG.
Конвертувати S/MIME повідомлення з MSG у EML
Aspose.Email зберігає цифровий підпис під час конвертації з MSG у EML, як показано у наведеному фрагменті коду.
Перевірка підписів безпечних листів
Наступні функції доступні для перевірки підпису об’єктів MapiMessage.
- SecureEmailManager клас для перевірки підпису безпечних електронних листів.
- SmimeResult клас для збереження результатів перевірки.
- SecureEmailManager.CheckSignature(MapiMessage msg) метод.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt) метод.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) метод.
Нижче наведений приклад коду показує, як впровадити функції у ваш проект:
var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);
var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
var result = new SecureEmailManager().CheckSignature(eml, cert, store);
Видалення підписів з MapiMessage
Для кращої сумісності, MapiMessage.RemoveSignature метод і MapiMessage.IsSigned властивості використовуються для видалення цифрового підпису з повідомлення.
Наступний фрагмент коду показує, як впровадити ці функції у ваш проект:
var msg = MapiMessage.Load(fileName);
if (msg.IsSigned)
{
var unsignedMsg = msg.RemoveSignature();
}
Дешифрування MapiMessage за допомогою сертифікатів
Якщо у вас є зашифровані повідомлення MAPI і потрібно розшифрувати їх за допомогою приватного ключа, збереженого у сертифікаті, наступні можливості Aspose.Email можуть бути корисними:
- MapiMessage.IsEncrypted - Повертає значення, що вказує, чи зашифровано повідомлення.
- MapiMessage.Decrypt() - Дешифрує це повідомлення (метод шукає у сховищах My поточного користувача та комп’ютера відповідний сертифікат і приватний ключ).
- MapiMessage.Decrypt(X509Certificate2 certificate) - Розшифровує це повідомлення за допомогою сертифіката.
У наведеному фрагменті коду показано, як працювати з зашифрованими повідомленнями MAPI:
var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");
if (msg.IsEncrypted);
{
var decryptedMsg = msg.Decrypt(privateCert);
}
Встановити кольорові категорії для файлів MSG
Кольорова категорія позначає електронне повідомлення певною важливістю або типом. Microsoft Outlook дозволяє користувачам призначати кольорові категорії для розрізнення листів. Щоб працювати з кольоровою категорією, використовуйте FollowUpManager. Містить такі функції, як AddCategory, RemoveCategory, ClearCategories і GetCategories.
- AddCategory приймає MapiMessage та рядок назви кольорової категорії, наприклад, "Фіолетова категорія" або "Червона категорія", як аргументи.
- RemoveCategory приймає MapiMessage та рядок назви кольорової категорії, яку потрібно видалити з повідомлення.
- ClearCategories використовується для видалення всіх кольорових категорій з повідомлення.
- GetCategories використовується для отримання всіх кольорових категорій із певного повідомлення.
У наведеному прикладі виконуються наступні завдання:
- Додати кольорову категорію.
- Додати іншу кольорову категорію.
- Отримати список усіх категорій.
- Видалити всі категорії.
Доступ до інформації про подальші дії у файлах MSG
API Aspose.Email забезпечує можливість доступу до інформації про подальші дії у надісланих або отриманих повідомленнях. Воно може отримати інформацію про підтвердження прочитання, доставки та результати голосування з файлу повідомлення.
Отримання інформації про підтвердження прочитання та доставки
У наведеному фрагменті коду показано, як отримати інформацію про підтвердження прочитання та доставки.
Створення повідомлень пересилання та відповіді
Aspose.Email API забезпечує можливість створення та форматування повідомлень пересилання та відповіді. ReplyMessageBuilder і ForwardMessageBuilder класи API використовуються для створення відповідних листів Reply та Forward. Лист Reply або Forward можна створити, використовуючи будь‑який з режимів OriginalMessageAdditionMode перелічення. Це перелічення має наступні значення:
- OriginalMessageAdditionMode.None – Оригінальний лист не включений у лист‑відповідь.
- OriginalMessageAdditionMode.Attachment – Оригінальний лист включений як вкладення у лист‑відповідь
- OriginalMessageAdditionMode.Textpart – Оригінальне повідомлення включається як текст у тіло відповіді.
Створення повідомлень‑відповідей
Наведений нижче фрагмент коду показує, як створити повідомлення‑відповідь.
Створення повідомлень пересилання
Наведений фрагмент коду показує, як створити лист‑перенаправлення.