Obsługa załączników TNEF w wiadomościach e‑mail
TNEF (Transport Neutral Encapsulation Format) jest własnościowym formatem używanym przez Microsoft Outlook do enkapsulacji bogatej zawartości w załącznikach — najczęściej zapisywanym jako winmail.dat. API Aspose.Email umożliwia odczyt wiadomości e‑mail, które mają załączniki TNEF i modyfikowanie zawartości załącznika. E‑mail może następnie zostać zapisany jako zwykły e‑mail lub w tym samym formacie, zachowując załączniki TNEF. Ten artykuł pokazuje różne przykłady kodu pracy z wiadomościami zawierającymi załączniki TNEF. Artykuł także pokazuje, jak tworzyć pliki TNEF EML z plików Outlook MSG.
Odczytaj wiadomość z załącznikiem TNEF
Poniższy fragment kodu pokazuje, jak odczytać wiadomość zachowując załączniki TNEF.
Odczytaj wiadomość bez załącznika TNEF
Poniższy fragment kodu pokazuje, jak odczytać wiadomość bez zachowywania załączników TNEF.
Ładowanie i zapisywanie załączników TNEF
Za pomocą Aspose.Email dla .NET można wczytać załączniki TNEF bezpośrednio do MapiAttachment obiekt przy użyciu ścieżki pliku lub strumienia, a następnie zapisuje obiekt w formacie TNEF. Umożliwia to tworzenie plików winmail.dat lub zachowanie formatowania specyficznego dla Outlook w przepływach pracy e‑mail.
API udostępnia następujące elementy w MapiAttachment klasa:
Załaduj załączniki TNEF
-
statyczny MapiAttachment LoadFromTnef(string fileName) - Ładuje załącznik TNEF z pliku .dat.
-
statyczny MapiAttachment LoadFromTnef(Stream stream) - Ładuje załącznik TNEF ze strumienia (np. MemoryStream lub strumień pliku).
Zapisz załączniki TNEF
-
void SaveToTnef(string filename) - Zapisuje MapiAttachment do pliku TNEF.
-
void SaveToTnef(Stream stream) - Zapisuje MapiAttachment do strumienia w formacie TNEF.
Poniższy przykład kodu demonstruje, jak wyodrębnić załącznik winmail.dat z wiadomości e‑mail, zachować go i ponownie dodać jako załącznik do wiadomości:
// 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);
Zaktualizuj zasoby w załączniku TNEF
Poniższy fragment kodu pokazuje, jak zaktualizować zasoby w załączniku TNEF i zachować format TNEF.
Dodaj załącznik do wiadomości TNEF
Poniższy fragment kodu pokazuje, jak dodać nowe załączniki do głównej wiadomości zawierającej TNEF.
Tworzenie TNEF EML z MSG
Pliki Outlook MSG czasami zawierają informacje, takie jak tabele i style tekstu, które mogą zostać zaburzone przy konwersji do EML. Tworzenie wiadomości TNEF z takich plików MSG pozwala zachować formatowanie i nawet wysłać takie wiadomości za pośrednictwem klientów poczty, zachowując formatowanie. The MailConversionOptions.ConvertAsTnef właściwość jest używana do osiągnięcia tego. Poniższy fragment kodu pokazuje, jak utworzyć TNEF EML z MSG.
Do tworzenia TNEF można użyć poniższego przykładowego kodu.
Zidentyfikuj wiadomości w formacie TNEF
Poniższy fragment kodu pokazuje, jak wykryć, czy wiadomość jest TNEF.
Zidentyfikuj załączniki w formacie TNEF
Ten Attachment.IsTnef właściwość umożliwia wykrycie, czy załącznik wiadomości jest sformatowany jako TNEF.
var eml = MailMessage.Load(fileName);
foreach (attachment in eml.Attachments)
{
Console.WriteLine($"Is Attachment TNEF?: {attachment.IsTnef}");
}