Gestion des pièces jointes TNEF dans les messages e‑mail

TNEF (Transport Neutral Encapsulation Format) est un format propriétaire utilisé par Microsoft Outlook pour encapsuler du contenu enrichi dans les pièces jointes – le plus souvent stocké sous le nom winmail.dat. L’API Aspose.Email vous permet de lire les messages e‑mail contenant des pièces jointes TNEF et de modifier le contenu de la pièce jointe. L’e‑mail peut ensuite être enregistré comme un e‑mail normal ou dans le même format, en préservant les pièces jointes TNEF. Cet article présente différents extraits de code pour travailler avec des messages contenant des pièces jointes TNEF. Cet article montre également comment créer des fichiers EML TNEF à partir de fichiers MSG Outlook.

Lire un message avec pièce jointe TNEF

L’extrait de code suivant montre comment lire un message en préservant les pièces jointes TNEF.

Lire un message sans pièce jointe TNEF

L’extrait de code suivant montre comment lire un message sans préserver les pièces jointes TNEF.

Chargement et enregistrement des pièces jointes TNEF

Avec Aspose.Email pour .NET, vous pouvez charger des pièces jointes TNEF directement dans un MapiAttachment objet en utilisant un chemin de fichier ou un flux, puis enregistrez l’objet au format TNEF. Cela permet de créer des fichiers winmail.dat ou de préserver le formatage spécifique à Outlook dans les flux de travail d’e‑mail.

L’API fournit les membres suivants dans le MapiAttachment classe:

Charger les pièces jointes TNEF

Enregistrer les pièces jointes TNEF

L’exemple de code ci‑dessous montre comment extraire une pièce jointe winmail.dat d’un message e‑mail, la préserver, puis la ré‑ajouter en tant que pièce jointe au message :

// 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);

Mettre à jour les ressources dans une pièce jointe TNEF

L’extrait de code suivant montre comment mettre à jour les ressources dans une pièce jointe TNEF et préserver le format TNEF.

Ajouter une pièce jointe au message TNEF

L’extrait de code suivant montre comment ajouter de nouvelles pièces jointes au message principal contenant du TNEF.

Création d’un EML TNEF à partir d’un MSG

Les fichiers MSG Outlook contiennent parfois des informations telles que des tableaux et des styles de texte qui peuvent être altérés s’ils sont convertis en EML. Créer des messages TNEF à partir de ces fichiers MSG permet de conserver le formatage et même d’envoyer ces messages via les clients de messagerie tout en préservant le formatage. Le MailConversionOptions.ConvertAsTnef la propriété est utilisée pour y parvenir. L’extrait de code suivant montre comment créer un EML TNEF à partir d’un MSG.

Pour créer le TNEF, le code d’exemple suivant peut être utilisé.

Identifier les messages au format TNEF

L’extrait de code suivant montre comment détecter si un message est au format TNEF.

Identifier les pièces jointes au format TNEF

Le Attachment.IsTnef la propriété permet de détecter si la pièce jointe du message est au format TNEF.

var eml = MailMessage.Load(fileName);

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