Charger et enregistrer le message e‑mail
Charger le message e‑mail
Charger depuis EML
Cette section décrit comment charger un fichier EML dans un objet MailMessage en utilisant le EmlLoadOptions classe. La classe EmlLoadOptions offre diverses options pour personnaliser la façon dont le fichier EML est chargé, comme la conservation des formats de messages intégrés ou le contrôle du comportement de chargement des pièces jointes TNEF.
- Initialisez une instance de EmlLoadOptions.
- Configurez les options de chargement selon les besoins.
- Utilisez le MailMessage.Load() méthode pour charger le fichier EML avec les options spécifiées.
using Aspose.Email;
// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Control TNEF attachment loading
RemoveSignature = false // Do not remove the signature
};
// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);
Propriétés de EmlLoadOptions
- PreferredTextEncoding: Définit l’encodage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Indique s’il faut conserver le format des messages intégrés lors du chargement. La valeur par défaut est
false. - PreserveTnefAttachments: Contrôle le comportement de chargement des pièces jointes TNEF. La valeur par défaut est
false. - RemoveSignature: Indique si la signature doit être supprimée lors du chargement. La valeur par défaut est
false.
Conserver le format du message intégré
Charger le message avec/sans signature
La préservation de la signature est prise en charge par défaut lors du chargement des fichiers EML. Pour supprimer la signature, vous pouvez définir le LoadOptions.RemoveSignature propriété à true.
L’exemple de code ci‑dessous montre comment supprimer une signature lors du chargement d’un message :
var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});
Charger depuis EMLX
La section suivante décrit le chargement d’un fichier EMLX avec le EmlxLoadOptions classe. Cette classe fournit des options similaires à EmlLoadOptions, offrant un contrôle sur le codage, la suppression de la signature, et plus encore.
- Instanciez les EmlxLoadOptions.
- Configurez les propriétés au besoin.
- Utilisez le MailMessage.Load() méthode pour charger le fichier EMLX.
using Aspose.Email;
// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);
Propriétés de EmlxLoadOptions
- PreferredTextEncoding: Définit l’encodage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Indique s’il faut conserver le format des messages intégrés. La valeur par défaut est
false. - RemoveSignature: Indique s’il faut supprimer la signature pendant le chargement. La valeur par défaut est
false.
Charger depuis HTML
Apprenez comment charger un fichier HTML dans un MailMessage en utilisant le HtmlLoadOptions classe. Cette classe est spécialement conçue pour gérer le contenu HTML avec des options pour gérer les ressources et ajouter des vues texte brut.
- Initialisez une instance de HtmlLoadOptions.
- Configurez les propriétés nécessaires.
- Utilisez le MailMessage.Load() méthode pour charger le fichier HTML avec les options spécifiées.
using Aspose.Email;
// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
// Configure load options
PathToResources = "resources/", // Path to directory containing resource files
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
ShouldAddPlainTextView = true // Add plain text view of the body
};
// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);
Propriétés de HtmlLoadOptions
- PathToResources: Définit le chemin vers le répertoire contenant les fichiers de ressources (images, par ex.).
- PreferredTextEncoding: Définit le codage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Détermine s’il faut préserver le format des messages imbriqués. La valeur par défaut est
false. - ShouldAddPlainTextView: Spécifie s’il faut ajouter une vue texte brut du corps du message. La valeur par défaut est
false.
Charger depuis MHTML
Cette section explique comment charger un fichier MHTML en utilisant le MhtmlLoadOptions classe. La classe MhtmlLoadOptions propose des options pour gérer le codage, préserver les formats des messages imbriqués et gérer les pièces jointes TNEF.
- Créez une instance de MhtmlLoadOptions.
- Configurez les propriétés souhaitées.
- Chargez le fichier MHTML en utilisant le MailMessage.Load() méthode.
using Aspose.Email;
// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
// Set load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false // Keep the signature
};
// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);
Propriétés de MhtmlLoadOptions
- MessageFormat: Représente le format du message, qui peut être EML, MSG ou MHTML. La valeur par défaut est EML.
- PreferredTextEncoding: Définit l’encodage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Détermine s’il faut préserver le format des messages imbriqués. La valeur par défaut est
false. - PreserveTnefAttachments: Contrôle le comportement de chargement des pièces jointes TNEF. La valeur par défaut est
false. - RemoveSignature: Indique s’il faut supprimer la signature pendant le chargement. La valeur par défaut est
false.
Charger depuis MSG
Cette section explique comment charger un fichier MSG dans un objet MailMessage en utilisant le MsgLoadOptions classe. La classe MsgLoadOptions offre diverses propriétés pour gérer la façon dont les fichiers MSG sont chargés, incluant des options pour préserver le contenu RTF ou gérer les pièces jointes TNEF.
- Créez une instance de MsgLoadOptions.
- Définissez les propriétés souhaitées pour personnaliser le chargement.
- Chargez le fichier MSG en utilisant le MailMessage.Load() méthode.
using Aspose.Email;
// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
// Set load options
KeepOriginalEmailAddresses = true, // Preserve original email addresses
PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
PreserveRtfContent = true, // Keep RTF content in the message
PreserveTnefAttachments = true, // Handle TNEF attachments
RemoveSignature = false, // Keep the signature
Timeout = 5000 // Set timeout to 5 seconds
};
// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);
Propriétés de MsgLoadOptions
- KeepOriginalEmailAddresses: Indique s’il faut conserver les adresses e‑mail originales. La valeur par défaut est
false. - PreferredTextEncoding: Définit le codage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Détermine si le format des messages imbriqués doit être préservé. La valeur par défaut est
false. - PreserveRtfContent: Spécifie s’il faut conserver le contenu du corps RTF dans le
MailMessage. La valeur par défaut estfalse. - PreserveTnefAttachments: Gère le comportement de chargement des pièces jointes TNEF. La valeur par défaut est
false. - RemoveSignature: Détermine s’il faut supprimer la signature lors du chargement. La valeur par défaut est
false. - Délai d’attente: Limite le temps de formatage en millisecondes pendant la conversion. La valeur par défaut est de 3000 ms.
Charger depuis le TNEF
Apprenez à charger un fichier TNEF eml avec le TnefLoadOptions classe. Cette classe fournit des options pour gérer l’encodage et supprimer les signatures durant le processus de chargement.
- Instanciez le TnefLoadOptions.
- Configurez les propriétés selon les besoins.
- Utilisez le MailMessage.Load() méthode pour charger le fichier TNEF.
using Aspose.Email;
// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
// Configure load options
PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
RemoveSignature = true // Remove signatures during loading
};
// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);
Propriétés de TnefLoadOptions
- MessageFormat: Représente le format du message e‑mail, tel que EML, MSG ou MHTML. La valeur par défaut est EML.
- PreferredTextEncoding: Définit l’encodage préféré pour le sujet et le corps du message. La valeur par défaut est
null. - PreserveEmbeddedMessageFormat: Indique s’il faut conserver le format des messages intégrés. La valeur par défaut est
false. - RemoveSignature: Indique s’il faut supprimer la signature pendant le chargement. La valeur par défaut est
false.
Détection des formats de fichiers
L’API Aspose.Email fournit la capacité de détecter le format du fichier de message fourni. Le DetectFileFormat méthode de FileFormatUtil la classe peut être utilisée pour cela. Les classes et méthodes suivantes peuvent être utilisées pour détecter le format du fichier chargé.
- FileFormatType Classe
- FileFormatInfo Classe
- FileFormatUtil Classe
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
L’extrait de code suivant vous montre comment détecter les formats de fichier.
Enregistrer et convertir les messages
Aspose.Email facilite la conversion de tout type de message vers un autre format. Pour démontrer cette fonctionnalité, le code de cet article charge trois types de messages depuis le disque et les enregistre de nouveau dans d’autres formats. La classe de base SaveOptions et les classes EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions pour des paramètres supplémentaires lors de l’enregistrement MailMessage peut être utilisé pour enregistrer des messages dans d’autres formats. L’article montre comment utiliser ces classes pour enregistrer un e‑mail d’exemple en tant que :
- format EML.
- Outlook MSG.
- format MHTML.
- format HTML.
Enregistrer en EML
L’extrait de code suivant vous montre comment charger un message EML et l’enregistrer sur le disque dans le même format.
Préserver les séparateurs d’origine
L’extrait de code suivant vous montre comment charger un EML et l’enregistrer en tant qu’EML en préservant les limites originales.
Préserver les pièces jointes TNEF
L’extrait de code suivant vous montre comment enregistrer en EML en préservant les pièces jointes TNEF.
Enregistrer EML en MSG
L’extrait de code suivant montre comment charger un message EML et le convertir en MSG en utilisant l’option appropriée depuis SaveOptions.
Conserver les dates
Le MsgSaveOptions classe vous permet d’enregistrer le message source en tant que fichier Outlook Message (MSG) en conservant les dates. L’extrait de code suivant montre comment enregistrer en MSG avec les dates préservées.
Enregistrer EML en MHTML
Différentes options de MHTML peuvent être utilisées pour obtenir les résultats souhaités. L’extrait de code suivant vous montre comment charger un message EML dans MailMessage et le convertir en MHTML avec une date de message dans le système UTC.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date
// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}
Options de conversion
Le MhtSaveOptions la classe fournit des options supplémentaires pour enregistrer des messages e‑mail au format MHTML. L’énumérateur MhtFormatOptions rend possible l’écriture d’informations e‑mail supplémentaires dans le MHTML de sortie. Les champs supplémentaires suivants peuvent être écrits :
WriteHeader– écrit l’en-tête de l’e‑mail dans le fichier de sortie.WriteOutlineAttachments– écrit les pièces jointes de plan dans le fichier de sortie.WriteCompleteEmailAddress– écrit l’adresse e‑mail complète dans le fichier de sortie.NoEncodeCharacters– aucun encodage de transfert des caractères ne doit être utilisé.HideExtraPrintHeader– masque l’en-tête d’impression supplémentaire en haut du fichier de sortie.WriteCompleteToEmailAddress– écrit l’adresse e‑mail complète du destinataire dans le fichier de sortie.WriteCompleteFromEmailAddress– écrit l’adresse e‑mail complète de l’expéditeur dans le fichier de sortie.WriteCompleteCcEmailAddress– écrit les adresses e‑mail complètes de tous les destinataires en copie carbone dans le fichier de sortie.WriteCompleteBccEmailAddress– écrit l’adresse e‑mail complète de tout destinataire en copie cachée dans le fichier de sortie.RenderCalendarEvent– écrit le texte de l’événement du calendrier dans le fichier de sortie.SkipByteOrderMarkInBody– écrit les octets Byte Order Mark (BOM) dans le fichier de sortie.RenderVCardInfo– écrit le texte de la vue alternative VCard dans le fichier de sortie.DisplayAsOutlook– affiche l’en-tête De.RenderTaskFields– écrit des champs de tâche spécifiques dans le fichier de sortie.None– Aucun paramètre spécifié.
L’extrait de code suivant vous montre comment convertir des fichiers EML en MHTML avec des paramètres optionnels.
Rendre les événements du calendrier
Le MhtFormatOptions.RenderCalendarEvent rendu les événements du calendrier en sortie MHTML. Le fragment de code suivant montre comment rendre les événements du calendrier lors de la conversion en MHTML.
Exportation d’un e‑mail vers MHT sans images intégrées
Exportation d’e‑mail au format MHT avec un fuseau horaire personnalisé
MailMessage classe fournit le TimeZoneOffset propriété permettant de définir un fuseau horaire personnalisé lors de l’exportation en MHT. L’extrait de code suivant vous montre comment exporter un e‑mail en MHT avec un fuseau horaire personnalisé.
Ajustement de police
Enregistrer EML en HTML
Le HtmlSaveOptions la classe vous permet d’exporter le corps du message au format HTML. L’extrait de code suivant vous montre comment enregistrer un message en HTML.
Enregistrer sans ressources intégrées
Enregistrer EML en OFT
L’extrait de code suivant vous montre comment enregistrer un message sous forme de modèle Outlook (.oft).
Convertir EML en MSG (MailMessage en MapiMessage)
Pour convertir un MailMessage objet chargé depuis un fichier EML vers un MapiMessage objet, utilisez le MapiConversionOptions classe. Cette conversion est souvent nécessaire car ces deux objets remplissent des fonctions différentes et répondent à des besoins distincts dans le traitement des e‑mails. MapiMessage est spécialement conçu pour la compatibilité avec Microsoft Outlook et Exchange Server, car il respecte le format Messaging Application Programming Interface (MAPI). Cela garantit que les e‑mails convertis en fichiers MSG sont entièrement compatibles avec les produits Microsoft, permettant de les ouvrir, modifier et gérer directement dans Outlook.
Cette conversion est également nécessaire lorsque les e‑mails doivent être archivés, indexés ou traités par des systèmes de stockage qui requièrent le format MAPI, les stockages PST/OST, OLM, par exemple. Le MapiConversionOptions la classe vous permet de spécifier des options supplémentaires, telles que la préservation du format de message original, le maintien des dates d’origine et la compression du corps RTF lors de la conversion. L’exemple de code suivant montre comment charger un e‑mail depuis un fichier au format .eml et le convertir en format Outlook .msg, permettant la personnalisation tout en garantissant que certaines caractéristiques du courriel original sont préservées pendant la conversion.
- Créez une instance de
MapiConversionOptionset configurez ses propriétés. - Convertir le
MailMessageobjet vers unMapiMessageobjet utilisant les options de conversion configurées.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());
// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
// Configure MapiConversionOptions
Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
PreserveOriginalAddresses = true, // Keep original email addresses
PreserveOriginalDates = true, // Preserve original dates
PreserveEmptyDates = false, // Generate new dates if original are empty
RemoveSignature = false, // Do not remove the signature
UseBodyCompression = true, // Enable RTF body compression
ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};
// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);
Propriétés disponibles de MapiConversionOptions
-
ASCIIFormat: Retourne
MapiConversionOptionsconfiguré avecOutlookMessageFormaten tant qu’ASCII, avecPreserveSignaturedéfini sur false etUseBodyCompressiondéfini sur false. Cette option est utile lorsque vous avez besoin d’une conversion au format ASCII simple. -
UnicodeFormat: Retourne
MapiConversionOptionsavecOutlookMessageFormatdéfini sur Unicode, et les deuxPreserveSignatureetUseBodyCompressiondéfini sur false. Utilisez cette option pour un support de caractères plus complet dans les fichiers MSG. -
ForcedRtfBodyForAppointment: Lorsqu’il est réglé sur true, force l’utilisation du corps RTF pour les rendez‑vous du calendrier. Cela est utile pour garantir la compatibilité avec certains clients de messagerie. La valeur par défaut est true.
-
Format: Spécifie le format de sortie pour le fichier MSG. Il peut être défini sur
OutlookMessageFormat.ASCIIouOutlookMessageFormat.Unicode, en contrôlant si le MSG converti doit utiliser l’encodage ASCII ou Unicode. -
PreserveEmbeddedMessageFormat: Détermine s’il faut conserver le format EML d’origine des messages intégrés lors de la conversion vers
MapiMessage. Mettre ceci à true garantit que les e‑mails intégrés conservent leur structure originale. La valeur par défaut est false. -
PreserveEmptyDates: Lorsqu’il est réglé sur true, conserve les dates d’enregistrement et de modification d’origine du EML. Sinon, de nouvelles dates seront générées si les originales sont vides.
-
PreserveOriginalAddresses: Si réglé sur true, conserve les adresses e‑mail d’origine sans validation. Utile lorsque les adresses ne respectent pas les normes strictes mais doivent être conservées telles quelles. La valeur par défaut est false.
-
PreserveOriginalDates: Assure que les dates d’envoi et de réception d’origine sont conservées pendant la conversion. Mettre à true conserve ces dates pour une meilleure précision historique.
-
RemoveSignature: Contrôle si la signature numérique, si présente, sera supprimée du message lors de la conversion. La valeur par défaut est false, ce qui signifie que la signature sera conservée sauf suppression explicite.
-
UseBodyCompression: Active la compression du corps RTF si réglé sur true. Cela peut aider à réduire la taille du fichier MSG, notamment pour les gros messages au format riche.