Conversion EML et MIME

Conversion EML et MIME

Aspose.Email FOSS for .NET inclut un analyseur et sérialiseur MIME intégrés, vous permettant de convertir entre les fichiers standard .eml (RFC 5322) et les fichiers Outlook .msg sans aucune dépendance externe. Aucune référence System.Net.Mail n’est nécessaire.


Charger le fichier EML dans MapiMessage

LoadFromEml accepte un chemin de fichier, un flux ou un tableau d’octets :

using System.IO;
using Aspose.Email.Foss.Msg;

// From file path
var message = MapiMessage.LoadFromEml("incoming.eml");

// From stream
using var stream = File.OpenRead("incoming.eml");
var message2 = MapiMessage.LoadFromEml(stream);

// From byte array
var emlBytes = File.ReadAllBytes("incoming.eml");
var message3 = MapiMessage.LoadFromEml(emlBytes);

Après le chargement, tous les champs standard sont disponibles :

Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
Console.WriteLine(message.Recipients.Count);
Console.WriteLine(message.Attachments.Count);
Console.WriteLine(message.HtmlBody);

Enregistrer MapiMessage au format EML

SaveToEml sérialise un MapiMessage au format MIME:

// To file path
message.SaveToEml("output.eml");

// To stream
using var outStream = File.Create("output.eml");
message.SaveToEml(outStream);

// To byte array
byte[] emlData = message.SaveToEml();

Conversion EML → MSG

Combinez LoadFromEml et Save pour une conversion complète de EML en MSG :

using System.IO;
using Aspose.Email.Foss.Msg;

var message = MapiMessage.LoadFromEml("incoming.eml");
message.Save("converted.msg");

Conversion MSG → EML

Charger un MSG existant et le sérialiser en EML:

using var message = MapiMessage.FromFile("original.msg");
message.SaveToEml("exported.eml");

Fidélité aller-retour

Les champs suivants sont conservés lors des allers‑retours EML → MSG → EML :

  • Sujet, corps et corps HTML
  • Nom de l’expéditeur et adresse e‑mail
  • Tous les destinataires (À, Cc, Cci)
  • Pièces jointes avec nom de fichier, type MIME et contenu
  • Identifiant de message Internet (Message‑ID)
  • Heure de livraison du message
// Verify round-trip
var original = MapiMessage.LoadFromEml("test.eml");
original.Save("test.msg");

using var reloaded = MapiMessage.FromFile("test.msg");
reloaded.SaveToEml("roundtrip.eml");

// Compare: original.eml and roundtrip.eml should have
// matching Subject, From, To, and attachment count

Voir aussi

 Français