Обработка на 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

Този Attachment.IsTnef свойството позволява да се открие дали прикаченият файл към съобщението е във формат TNEF.

var eml = MailMessage.Load(fileName);

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