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.

  1. Initialisez une instance de EmlLoadOptions.
  2. Configurez les options de chargement selon les besoins.
  3. 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.

  1. Instanciez les EmlxLoadOptions.
  2. Configurez les propriétés au besoin.
  3. 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.

  1. Initialisez une instance de HtmlLoadOptions.
  2. Configurez les propriétés nécessaires.
  3. 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.

  1. Créez une instance de MhtmlLoadOptions.
  2. Configurez les propriétés souhaitées.
  3. 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.

  1. Créez une instance de MsgLoadOptions.
  2. Définissez les propriétés souhaitées pour personnaliser le chargement.
  3. 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 est false.
  • 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.

  1. Instanciez le TnefLoadOptions.
  2. Configurez les propriétés selon les besoins.
  3. 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é.

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.

  1. Créez une instance de MapiConversionOptions et configurez ses propriétés.
  2. Convertir le MailMessage objet vers un MapiMessage objet 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 MapiConversionOptions configuré avec OutlookMessageFormat en tant qu’ASCII, avec PreserveSignature défini sur false et UseBodyCompression défini sur false. Cette option est utile lorsque vous avez besoin d’une conversion au format ASCII simple.

  • UnicodeFormat: Retourne MapiConversionOptions avec OutlookMessageFormat défini sur Unicode, et les deux PreserveSignature et UseBodyCompression dé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.ASCII ou OutlookMessageFormat.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.