Обробка вкладень TNEF у повідомленнях електронної пошти

TNEF (Transport Neutral Encapsulation Format) — це пропрієтарний формат, який використовується Microsoft Outlook для інкапсуляції багатого вмісту у вкладеннях — найчастіше зберігається як winmail.dat. API Aspose.Email дозволяє читати електронні листи з вкладеннями TNEF та змінювати вміст вкладення. Після цього лист можна зберегти як звичайний лист або у тому ж форматі, зберігаючи вкладення TNEF. У статті показані різні приклади коду для роботи з повідомленнями, що містять вкладення TNEF. У статті також показано, як створити TNEF EML з файлів Outlook MSG.

Прочитати повідомлення з вкладенням TNEF

Нижче наведений фрагмент коду показує, як прочитати повідомлення, зберігаючи вкладення TNEF.

Прочитати повідомлення без вкладення TNEF

Нижче наведений фрагмент коду показує, як прочитати повідомлення без збереження вкладень TNEF.

Завантаження та збереження TNEF‑вкладень

За допомогою Aspose.Email для .NET ви можете завантажити вкладення TNEF безпосередньо у MapiAttachment об’єкт, використовуючи шлях до файлу або потік, а потім зберігає об’єкт у форматі TNEF. Це дозволяє створювати файли winmail.dat або зберігати специфічне для Outlook форматування у робочих процесах електронної пошти.

API надає наступні члени в MapiAttachment клас:

Завантажити вкладення TNEF

  • static MapiAttachment LoadFromTnef(string fileName) - Завантажує вкладення TNEF з файлу .dat.

  • static MapiAttachment LoadFromTnef(Stream stream) - Завантажує вкладення TNEF з потоку (наприклад, MemoryStream або файлового потоку).

Зберегти вкладення TNEF

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

// message.eml contains a winmail.dat attachment, but by default, the attachment is not preserved.
var msg = MapiMessage.Load("message.eml");

var ms = new MemoryStream();
msg.Attachments[0].SaveToTnef("winmail.dat");

ms.Position = 0;
var fromtnefAttachment = MapiAttachment.LoadFromTnef(ms);
msg.Attachments.Add(fromtnefAttachment);

fromtnefAttachment = MapiAttachment.LoadFromTnef("winmail.dat");
msg.Attachments.Add(fromtnefAttachment);

Оновити ресурси у вкладенні TNEF

Нижче наведений фрагмент коду показує, як оновити ресурси у вкладенні TNEF та зберегти формат TNEF.

Додати вкладення до повідомлення TNEF

Нижче наведений фрагмент коду показує, як додати нові вкладення до головного повідомлення, що містить TNEF.

Створення TNEF EML з MSG

Повідомлення Outlook MSG іноді містять інформацію, таку як таблиці та стилі тексту, які можуть бути порушені при конвертації у EML. Створення TNEF повідомлень з таких файлів MSG дозволяє зберегти форматування і навіть надсилати такі повідомлення через клієнти електронної пошти, зберігаючи форматування. The MailConversionOptions.ConvertAsTnef властивість використовується для досягнення цього. Нижче наведений фрагмент коду показує, як створити TNEF EML з MSG.

Для створення TNEF можна використати наведений нижче приклад коду.

Виявити повідомлення у форматі TNEF

Нижче наведений фрагмент коду показує, як визначити, чи є повідомлення TNEF.

Виявити вкладення у форматі TNEF

The Attachment.IsTnef властивість дозволяє визначити, чи вкладення повідомлення має формат TNEF.

var eml = MailMessage.Load(fileName);

foreach (attachment in eml.Attachments)
{
    Console.WriteLine($"Is Attachment TNEF?: {attachment.IsTnef}");
}