Обработка на 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 прикачени файлове
-
void SaveToTnef(string filename) - Записва MapiAttachment във файл TNEF.
-
void SaveToTnef(Stream stream) - Записва MapiAttachment в поток във формат 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}");
}