FOSS pre .NET je knižnica C# bez závislosti, ktorá má licenciu MIT a slúži na prácu s súbormi Microsoft Outlook .msg , kontajnermi Compound File Binary (CFB) a správami EML. Pridajte jeden balík NuGet a okamžite začnite čítať, vytvárať a spracovávať e-mailové správy bez inštalácie programu Microsoft Outlook alebo akéhokoľvek vlastného času spustenia.
Knižnica poskytuje dve úrovne prístupu. Na nízkej úrovni CfbReader a CfbWriter poskytujú plnú kontrolu nad binárnymi kontajnermi CFB vstupy v priečinnom adresári, čítajú a píšu ukladacie uzly a prúdu údajov a overujú rozloženie surového sektora. MsgReader and MsgWriter spravujú formát MSG na vrchole CF B, odhaľujúce toky vlastností MAPI, prijímajúce tabuľky a podskladnice pripojenia. V vysokej úrovni vám MapiMessage umožňuje vytvárať nové správy od nuly, čítanie, telo, odosielateľ a príjemcovia, spravovanie príloh a konverziu medzi formálom MSL a EMIME prostredníctvom zabudovanej implementácie MIME.
Knižnica je zameraná na .NET 8.0 alebo novšie a nemá žiadne pôvodné závislosti, čo ju robí vhodnou pre Windows, Linux, macOS, Docker kontajnery a funkcie bez serverov. 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), aby ste našli konkrétny tok podľa reťazca názvov.CfbDocument a serializujte do bajtov alebo súborov prostredníctvom CfbWriter.ToBytes() alebo CfbWriter.WriteFile().CfbStorage a CfbStream uzly na akýkoľvek uzl úložného zariadenia pred serializáciou..msg súborov Priamy prístup k CF B umožňuje forenznú inšpekciu a opravu.MsgReader.FromFile() alebo MsgReader.FromStream() a prístup k základným tokov vlastností MAPI, záznamom príjemcu a pripojených pod-stávok.MsgDocument s MsgWriter.ToBytes() alebo MsgWriter.WriteFile().MsgStorage, MsgStream a MsgStorage.FindStream().MsgStorage.FindStream() a MsgStorage.FindStorage()..msg súbory z archívnych adresárov a extrahovať metadaty alebo prílohy..msg a dodávať ich do poštových systémov založených na Outlooku.MapiMessage.Create(subject, body), nastaviť SenderName , SenderEmailAddress a HtmlBody.To, Cc a Bcc prijímačov prostredníctvom AddRecipient() s e-mailovou adresou a zobrazovacím menom.AddAttachment() alebo konštruovať MapiAttachment objekty priamo s Filename, MimeType , ContentId a Data.message.Save() alebo message.Save(stream) a znovu zaťahovať so MapiMessage.FromFile() aleboMapiMessage.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 súborov do jedného formátu..eml a overte, či prežívajú MSG bez straty údajov.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 so odosielateľom, príjemcom a priloženým súborom a potom ho napíš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);
Nahráňte štandardný súbor .eml a ukladajte ho ako Outlook .msg pomocou vstavaného MIME analyzátora.
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);