Handhabung von TNEF‑Anhängen in E‑Mail‑Nachrichten
TNEF (Transport Neutral Encapsulation Format) ist ein proprietäres Format, das von Microsoft Outlook verwendet wird, um reichhaltige Inhalte in Anhängen zu kapseln – am häufigsten gespeichert als winmail.dat. Die Aspose.Email‑API ermöglicht das Lesen von E‑Mail‑Nachrichten mit TNEF‑Anhängen und das Modifizieren des Anhangs. Die E‑Mail kann anschließend als normale E‑Mail oder im selben Format gespeichert werden, wobei TNEF‑Anhänge erhalten bleiben. Dieser Artikel zeigt verschiedene Code‑Beispiele für die Arbeit mit Nachrichten, die TNEF‑Anhänge enthalten. Außerdem wird erläutert, wie TNEF‑EML‑Dateien aus Outlook‑MSG‑Dateien erstellt werden.
Nachricht mit TNEF‑Anhang lesen
Das folgende Code‑Snippet zeigt, wie Sie eine Nachricht lesen und dabei TNEF‑Anhänge beibehalten.
Nachricht ohne TNEF‑Anhang lesen
Das folgende Code‑Snippet zeigt, wie Sie eine Nachricht lesen, ohne TNEF‑Anhänge beizubehalten.
Laden und Speichern von TNEF‑Attachments
Mit Aspose.Email für .NET können Sie TNEF‑Anhänge direkt in ein MapiAttachment Objekt mithilfe eines Datei‑Pfads oder Streams und speichert das Objekt anschließend im TNEF‑Format. Dies ermöglicht die Erstellung von winmail.dat‑Dateien oder das Beibehalten von Outlook‑spezifischer Formatierung in E‑Mail‑Workflows.
Die API bietet die folgenden Mitglieder in der MapiAttachment Klasse:
TNEF‑Anhänge laden
-
static MapiAttachment LoadFromTnef(string fileName) - Lädt einen TNEF‑Anhang aus einer .dat‑Datei.
-
static MapiAttachment LoadFromTnef(Stream stream) - Lädt einen TNEF‑Anhang aus einem Stream (z. B. MemoryStream oder Dateistream).
TNEF‑Anhänge speichern
-
void SaveToTnef(string filename) - Speichert einen MapiAttachment in eine TNEF‑Datei.
-
void SaveToTnef(Stream stream) - Speichert einen MapiAttachment in einen Stream im TNEF‑Format.
Das untenstehende Code‑Beispiel demonstriert, wie ein winmail.dat‑Anhang aus einer E‑Mail‑Nachricht extrahiert, beibehalten und erneut als Anhang zur Nachricht hinzugefügt wird:
// 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);
Ressourcen in TNEF‑Anhang aktualisieren
Das folgende Code‑Snippet zeigt, wie Sie Ressourcen in einem TNEF‑Anhang aktualisieren und das TNEF‑Format beibehalten.
Anhang zu TNEF‑Nachricht hinzufügen
Das folgende Code‑Snippet zeigt, wie Sie neue Anhänge zur Hauptnachricht hinzufügen, die TNEF enthält.
TNEF‑EML aus MSG erstellen
Outlook‑MSGs enthalten manchmal Informationen wie Tabellen und Textstile, die bei einer Konvertierung nach EML verfälscht werden können. Das Erstellen von TNEF‑Nachrichten aus solchen MSG‑Dateien ermöglicht es, die Formatierung beizubehalten und die Nachrichten sogar über E‑Mail‑Clients zu versenden, wobei die Formatierung erhalten bleibt. Der MailConversionOptions.ConvertAsTnef Eigenschaft wird verwendet, um dies zu erreichen. Das folgende Code‑Snippet zeigt, wie Sie TNEF‑EML aus MSG erstellen.
Zum Erstellen von TNEF kann der folgende Beispielcode verwendet werden.
TNEF‑Formatnachrichten identifizieren
Das folgende Code‑Snippet zeigt, wie Sie erkennen, ob eine Nachricht TNEF ist.
TNEF‑Format‑Anhänge identifizieren
Die Attachment.IsTnef Eigenschaft ermöglicht die Erkennung, ob der Nachrichtenanhang im TNEF‑Format vorliegt.
var eml = MailMessage.Load(fileName);
foreach (attachment in eml.Attachments)
{
Console.WriteLine($"Is Attachment TNEF?: {attachment.IsTnef}");
}