Aspose.Email FOSS pentru .NET este o bibliotecă C# licențiată sub MIT, fără dependențe, pentru lucrul cu fișierele Microsoft Outlook .msg, containerele Compound File Binary (CFB) și mesajele EML. Adăugați un singur pachet NuGet și începeți imediat să citiți, să creați și să procesați mesaje de e‑mail fără a instala Microsoft Outlook sau orice runtime proprietar.
Biblioteca oferă două niveluri de acces. La nivelul inferior, CfbReader și CfbWriter oferă control complet asupra containerelor binare CFB — parcurgerea intrărilor de director, citirea și scrierea nodurilor de stocare și a datelor fluxului, și inspectarea aranjamentului brut al sectoarelor. MsgReader și MsgWriter gestionează formatul MSG deasupra CFB, expunând fluxurile de proprietăți MAPI, tabelele de destinatari și sub‑stocările de atașamente. La nivelul înalt, MapiMessage vă permite să creați mesaje noi de la zero, să citiți subiectul, corpul, expeditorul și destinatarii, să gestionați atașamentele și să convertiți între formatul MSG și EML printr‑o implementare MIME încorporată.
Biblioteca vizează .NET 8.0 sau o versiune ulterioară și nu are dependențe native, făcând-o potrivită pentru Windows, Linux, macOS, containere Docker și funcții serverless. Pentru funcționalități suplimentare și suport comercial, consultați Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() sau new CfbReader(data).IterStorages(), IterStreams(), IterChildren(), și IterTree().ResolvePath(names) pentru a localiza un flux specific prin lanțul de nume.CfbDocument și le serializează în bytes sau fișier prin CfbWriter.ToBytes() sau CfbWriter.WriteFile().CfbStorage și CfbStream la orice nod de stocare înainte de serializare..msg — accesul direct la CFB permite inspectarea și repararea forensică.MsgReader.FromFile() sau MsgReader.FromStream() și accesează fluxurile de proprietăți MAPI subiacente, înregistrările destinatarilor și sub-stocările de atașamente.MsgDocument cu MsgWriter.ToBytes() sau MsgWriter.WriteFile().MsgStorage, MsgStream și MsgStorage.FindStream().MsgStorage.FindStream() și MsgStorage.FindStorage() pentru a localiza subintrările denumite..msg din directoarele de arhivă și extrage metadatele sau atașamentele..msg programatic și livrați-le către sistemele de mail bazate pe Outlook.MapiMessage.Create(subject, body), setează SenderName, SenderEmailAddress și HtmlBody.To, Cc și Bcc prin AddRecipient() cu adresa de e‑mail și numele afișat.AddAttachment() sau construiți obiecte MapiAttachment direct cu Filename, MimeType, ContentId și Data.message.Save() sau message.Save(stream) și reîncărcați cu MapiMessage.FromFile() sau MapiMessage.FromStream().message.Attachments, și salvați fiecare attachment.Data pe disc.message.Subject, message.Body, message.SenderEmailAddress și message.Recipients fără automatizare COM..eml (RFC 5322 / MIME) într-un obiect MapiMessage complet prin MapiMessage.LoadFromEml(stream).MapiMessage înapoi în format MIME cu message.SaveToEml() sau message.SaveToEml(stream)..eml și .msg la un singur format..eml în teste și verificați că supraviețuiesc rundei de transfer MSG fără pierdere de date.Deschide un fișier Outlook MSG dintr-un flux și afișează subiectul — nu este necesar 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);
Creează un e‑mail complet cu expeditor, destinatar și atașament, apoi scrie‑l într-un fișier 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);
Încărcați un fișier standard .eml și salvați-l ca fișier Outlook .msg utilizând parserul MIME încorporat.
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);