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
-
static MapiAttachment LoadFromTnef(string fileName) - Charge une pièce jointe TNEF depuis un fichier .dat.
-
static MapiAttachment LoadFromTnef(Stream stream) - Charge une pièce jointe TNEF depuis un flux (p. ex., MemoryStream ou flux de fichier).
Enregistrer les pièces jointes TNEF
-
void SaveToTnef(string filename) - Enregistre un MapiAttachment dans un fichier TNEF.
-
void SaveToTnef(Stream stream) - Enregistre un MapiAttachment vers un flux au format 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}");
}