Aspose.Email FOSS pre .NET je knižnica C# s licenciou MIT, bez závislostí, určená na prácu so súbormi Microsoft Outlook .msg, kontajnermi Compound File Binary (CFB) a správami EML. Pridajte jediný balík NuGet a okamžite začnite čítať, vytvárať a spracovávať e‑mailové správy bez inštalácie Microsoft Outlook alebo akéhokoľvek proprietárneho runtime.
Knižnica poskytuje dve úrovne prístupu. Na nízkej úrovni, CfbReader a CfbWriter poskytujú úplnú kontrolu nad binárnymi kontajnermi CFB — prechádzajte položky adresára, čítajte a zapisujte úložné uzly a dáta prúdu a kontrolujte surové usporiadanie sektorov. MsgReader a MsgWriter spracovávajú formát MSG nad CFB, odhaľujúc prúdy vlastností MAPI, tabuľky príjemcov a podúložiská príloh. Na vysokej úrovni, MapiMessage vám umožňuje vytvárať nové správy od začiatku, čítať predmet, telo, odosielateľa a príjemcov, spravovať prílohy a konvertovať medzi formátmi MSG a EML pomocou vstavaného MIME implementácie.
Knižnica ciele .NET 8.0 alebo novšiu a nemá natívne závislosti, čo ju robí vhodnou pre Windows, Linux, macOS, Docker kontajnery a serverless funkcie. Pre ďalšie funkcie a komerčnú podporu pozri Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() alebo new CfbReader(data).IterStorages(), IterStreams(), IterChildren() a IterTree().ResolvePath(names) a nájdite konkrétny prúd podľa reťazca názvov.CfbDocument a serializujte ich do bajtov alebo súboru pomocou CfbWriter.ToBytes() alebo CfbWriter.WriteFile().CfbStorage a CfbStream k akémukoľvek uzlu úložiska pred serializáciou..msg — priame prístup k CFB umožňuje forenznú kontrolu a opravu.MsgReader.FromFile() alebo MsgReader.FromStream() a získajte prístup k podkladovým MAPI property streams, recipient records a attachment sub-storages.MsgDocument pomocou MsgWriter.ToBytes() alebo MsgWriter.WriteFile().MsgStorage, MsgStream a MsgStorage.FindStream().MsgStorage.FindStream() a MsgStorage.FindStorage() na vyhľadanie pomenovaných podzáznamov..msg súborov z archívnych adresárov a extrahovanie metadát alebo príloh..msg a doručovať ich do poštových systémov založených na Outlooku.MapiMessage.Create(subject, body), nastavte SenderName, SenderEmailAddress a HtmlBody.To, Cc a Bcc príjemcov prostredníctvom AddRecipient() s e‑mailovou adresou a zobrazovaným menom.AddAttachment() alebo konštruujte objekty MapiAttachment priamo pomocou Filename, MimeType, ContentId a Data.message.Save() alebo message.Save(stream) a načítať pomocou MapiMessage.FromFile() alebo MapiMessage.FromStream().message.Attachments a uložte každú attachment.Data na disk.message.Subject, message.Body, message.SenderEmailAddress a message.Recipients bez COM automatizácie..eml súbor (RFC 5322 / MIME) do úplného MapiMessage objektu prostredníctvom MapiMessage.LoadFromEml(stream).MapiMessage späť do formátu MIME s message.SaveToEml() alebo message.SaveToEml(stream)..eml a .msg na jeden formát..eml fixúry v testoch a overte, že prežijú MSG round‑trip bez straty dát.Otvorte súbor Outlook MSG zo streamu a vytlačte predmet — nie je potrebný 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);
Vytvorte kompletný e‑mail s odosielateľom, príjemcom a prílohou, potom ho zapíšte do súboru 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);
Načítajte štandardný .eml súbor a uložte ho ako Outlook .msg súbor pomocou vstavaného MIME parsera.
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);