1. Produits
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS for .NET

Lire, créer et traiter les fichiers Outlook MSG, les conteneurs CFB et les messages EML depuis .NET — gratuit et open‑source, sans dépendance à Microsoft Outlook.

Bibliothèque .NET Open-Source pour les fichiers MSG, CFB et EML

FOSS pour .NET est une bibliothèque C# sans dépendance sous licence MIT, permettant de travailler avec les fichiers Microsoft Outlook .msg , les conteneurs Compound File Binary (CFB) et les messages EML. Ajoutez un seul paquet NuGet et commencez immédiatement à lire, créer et traiter des e-mails sans installer Microsoft Excel ou tout temps d’exécution propriétaire.

La bibliothèque fournit deux niveaux d’accès. Au niveau inférieur, CfbReader et CfbWriter donnent un contrôle complet sur les conteneurs binaires CFB entrées de répertoire transversales, lecture et écriture des nœuds de stockage et flux de données, et inspecter la mise en page du secteur brut. MsgReader Et MsgWriter gèrent le format MSG au-dessus de CF B, exposant les flux propriétés MAPI, les tables destinataires et sous-stockages d’attachements. À haut niveau,MapiMessage vous permet de créer de nouveaux messages à partir de zéro, lire, corps, expéditeur et sujet, gérer les pièces jointes, ainsi que convertir entre le formats MS G et EMLIME via une implémentation intégrée de MIME.

La bibliothèque cible .NET 8.0 ou plus récent et n’a pas de dépendances natives, ce qui la rend adaptée à Windows, Linux, macOS, Docker containers et aux fonctions sans serveur. Pour des fonctionnalités supplémentaires et un support commercial, voir Aspose.Email for .NET.

Contenant CFB Lire et écrire

  • ** Ouvrez des fichiers CFB:** Chargez les conteneurs CF B existants à partir d’un chemin de fichage, un flux ou une matrice en octets via CfbReader.FromFile(), CfbReader.FromStream() ou new CfbReader(data).
  • ** Traverser l’arbre de répertoires:** Iterer les stocks, flux et enfants en utilisant IterStorages(), IterStreams(),IterChildren() et IterTree().
  • Résoudre les chemins: Navigation dans les hiérarchies de stockage imbriquées avec ResolvePath(names) pour localiser un flux spécifique par chaîne nominale.
  • Ecrire des conteneurs CFB: Construire les documents CF B de manière programmatique avec CfbDocument et sérialiser en octets ou fichiers via CfbWriter.ToBytes() ou CfbWriter.WriteFile().
  • ** Ajouter des stockages et flux:** Attacher les nœuds CfbStorage et CfbStream à tout nœud de stockage avant la sérialisation.

Où l'accès CFB est utilisé

  • ** Inspection de fichiers MSG:** CFB est le format conteneur pour les fiches Outlook .msg l’accès direct à CF B permet une inspection et réparation médico-légales.
  • Formats binaires personnalisés: Toute application ancienne utilisant CFB pour le stockage de données peut être lue ou écrite sans dépendance COM.
  • Récupération de données: Parcourez l’arbre complet des répertoires et extraisez les octets bruts du flux à partir de fichiers CFB endommagés ou non standard.
  • ** Tests binaires aller-retour:** Sérialiser un document en octets et le recharger pour vérifier la sérialisation sans perte dans les tests automatisés.

Fichier MSG Lire et écrire

  • Lire les fichiers MSG: Ouvrez des fiches Outlook MS G avec MsgReader.FromFile() ou MsgReader.FromStream() et accédez aux flux de propriétés MAPI sous-jacents, aux enregistrements du destinataire et aux sous - stockages d’attachement.
  • ** Écrire des fichiers MSG:** Produire les fiches MS G à partir d’un MsgDocument avec MsgWriter.ToBytes() ou MsgWriter.WriteFile().
  • Accès MAPI de bas niveau: Lire les flux de propriétés du haut niveau, les propriété nommées et les données d’attachement via MsgStorage, MsgStream et MsgStorage.FindStream().
  • ** Navigation de stockage MSG:** Utilisez MsgStorage.FindStream() et MsgStorage.FindStorage() pour localiser les sous-entrées nommées.

Où le traitement du GMS est utilisé

  • ** Pipelines d’archives de courrier électronique:** Lire en masse .msg fichiers à partir des répertoires d"archive et extraire les métadonnées ou pièces jointes.
  • Outils de migration: Convertir les collections MSG en formats standard pour l’import dans des systèmes autres que Outlook.
  • ** Découverte légale:** Pars des flux de propriétés MAPI brutes pour extraire tous les champs de message, y compris les propriété non standard.
  • Delivery automatique des rapports: Construire les fichiers .msg de manière programmatique et les livrer aux systèmes de messagerie basés sur Outlook.

API de message à haut niveau

  • ** Créer des messages:** Créez un e-mail complet avec MapiMessage.Create(subject, body), définissez les paramètres SenderName, SenderEmailAddress et HtmlBody.
  • ** Ajouter des destinataires:** Joindre les destinitaires To, Cc et Bcc par l’intermédiaire de AddRecipient() avec une adresse e-mail et un nom d’affichage.
  • ** Gérer les pièces jointes:** Ajouter des fichiers et flux de pièce jointe avec AddAttachment() ou construire directement des objets MapiAttachment avecFilename, MimeType , ContentId et Data.
  • ** Sauvegarder et recharger:** Sérialiser avec message.Save() ou message.Save(stream) et charger à nouveau avecMapiMessage.FromFile() or MapiMessage.FromStream().

Où l'API de haut niveau est utilisée

  • Génération automatisée d’e-mails : Générer des milliers de fichiers MSG personnalisés à partir d’enregistrements de données dans des travaux par lots.
  • Création de fixtures de test : Construire des fichiers MSG fiables avec un contenu prévisible pour les suites de tests d’intégration.
  • Extraction des pièces jointes : Charger un fichier MSG, itérer message.Attachments, et enregistrer chaque attachment.Data sur le disque.
  • Inspection des propriétés : Accéder à message.Subject, message.Body, message.SenderEmailAddress et message.Recipients sans automatisation COM.

Conversion EML et MIME

  • ** Charger EML dans MapiMessage:** Parser un fichier standard .eml (RFC 5322 / MIME) en un objet complet MapiMessage par l’intermédiaire de MapiMessage.LoadFromEml(stream).
  • ** Enregistrer MapiMessage en EML:** Sérialiser un MapiMessage vers le format MIME avec message.SaveToEml() ou message.SaveToEml(stream).
  • Fidélité aller-retour: Le sujet, le corps, la page HTML, l’expéditeur, les destinataires et les pièces jointes sont tous conservés par des allers-repas EML → MSG → EMl.
  • ** Pas de parseur MIME externe:** L’analyse EML est implémentée natively dans la bibliothèque pas besoin d’une dépendance System.Net.Mail.

Où la conversion EML est utilisée

  • **Reception de courriels sous forme EML à partir des serveurs de messagerie et conversion en MSG pour un stockage compatible avec Outlook.
  • ** Conformité aux normes:** Convertir les fichiers MSG propriétaires en MIME standard pour la livraison à tout transport de courrier.
  • ** Normalité des archives:** Normalizer une archive mixte de fichiers .eml et .msg dans un seul format.
  • ** Flux de travail d’essai:** Générer des fixations .eml dans les essais et vérifier qu’elles survivent à l’aller-retour sans perte de données.

Lire le sujet d’un fichier MSG

Ouvrez un fichier Outlook MSG à partir d’un flux et imprimez le sujet aucun Microsoft Outlook requis.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

Créer et enregistrer un message MSG

Créez un e-mail complet avec l’expéditeur, le destinataire et la pièce jointe, puis écrivez-le dans un fichier MSG.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

Convertir le LME en GMS

Chargez un fichier standard .eml et enregistrez-le sous forme de fixier Outlook .msg à l’aide du parseur MIME intégré.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

Ressources de support et d'apprentissage

 Français