Aspose.Email FOSS per a .NET és una biblioteca C# amb llicència MIT, sense dependències, per treballar amb fitxers .msg de Microsoft Outlook, contenidors Compound File Binary (CFB) i missatges EML. Afegeix un únic paquet NuGet i comença immediatament a llegir, crear i processar missatges de correu electrònic sense instal·lar Microsoft Outlook ni cap entorn d’execució propietari.
La biblioteca ofereix dos nivells d’accés. A nivell baix, CfbReader i CfbWriter donen control total sobre contenidors binaris CFB — recórrer les entrades del directori, llegir i escriure nodes d’emmagatzematge i dades de flux, i inspeccionar la disposició bruta dels sectors. MsgReader i MsgWriter gestionen el format MSG sobre CFB, exposant fluxos de propietats MAPI, taules de destinataris i sub‑emmagatzematges d’adjuncions. A nivell alt, MapiMessage et permet crear nous missatges des de zero, llegir l’assumpte, el cos, l’emissor i els destinataris, gestionar adjuncions i convertir entre els formats MSG i EML mitjançant una implementació MIME integrada.
La biblioteca té com a objectiu .NET 8.0 o posterior i no té dependències natives, cosa que la fa adequada per a Windows, Linux, macOS, contenidors Docker i funcions sense servidor. Per a funcions addicionals i suport comercial, vegeu Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() o new CfbReader(data).IterStorages(), IterStreams(), IterChildren() i IterTree().ResolvePath(names) per localitzar un flux específic per cadena de noms.CfbDocument i serialitza a bytes o fitxer mitjançant CfbWriter.ToBytes() o CfbWriter.WriteFile().CfbStorage i CfbStream a qualsevol node d’emmagatzematge abans de la serialització..msg d’Outlook — l’accés directe a CFB permet la inspecció forense i la reparació.MsgReader.FromFile() o MsgReader.FromStream() i accediu als fluxos de propietats MAPI subjacents, als registres de destinataris i a les subemmagatzems d’adjuncions.MsgDocument amb MsgWriter.ToBytes() o MsgWriter.WriteFile().MsgStorage, MsgStream i MsgStorage.FindStream().MsgStorage.FindStream() i MsgStorage.FindStorage() per localitzar sub‑entrades amb nom..msg des de directoris d’arxiu i extreure metadades o adjunts..msg de manera programàtica i lliurar-los a sistemes de correu basats en Outlook.MapiMessage.Create(subject, body), estableix SenderName, SenderEmailAddress i HtmlBody.To, Cc i Bcc destinataris via AddRecipient() amb adreça de correu electrònic i nom per mostrar.AddAttachment() o construeix objectes MapiAttachment directament amb Filename, MimeType, ContentId i Data.message.Save() o message.Save(stream) i recarrega amb MapiMessage.FromFile() o MapiMessage.FromStream().message.Attachments, i desa cada attachment.Data al disc.message.Subject, message.Body, message.SenderEmailAddress i message.Recipients sense automatització COM..eml estàndard (RFC 5322 / MIME) en un objecte MapiMessage complet mitjançant MapiMessage.LoadFromEml(stream).MapiMessage de tornada al format MIME amb message.SaveToEml() o message.SaveToEml(stream)..eml i .msg a un únic format..eml en les proves i verifica que sobrevisquin al viatge d’anada i tornada de MSG sense pèrdua de dades.Obre un fitxer Outlook MSG des d’un flux i imprimeix l’assumpte — no cal Microsoft Outlook.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Creeu un correu electrònic complet amb remitent, destinatari i adjunt, i després deseu-lo en un fitxer 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);
Carrega un fitxer .eml estàndard i desa’l com a fitxer .msg d’Outlook utilitzant l’analitzador MIME integrat.
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);