FOSS pentru .NET este o bibliotecă C# fără dependență, licențiată de MIT și care funcționează cu fișierele Microsoft Outlook .msg, containere Compound File Binary (CFB) și mesaje EML. Adăugați un singur pachet NuGet și începeți imediat să citiți, creați și prelucrați mesajele de e-mail fără a instala Microsoft Excel sau orice runtime proprietar.
Biblioteca oferă două niveluri de acces. La nivelul inferior, CfbReader și CfbWriter dau control complet asupra containerelor binare CFB intrările directoriilor traversale, citesc și scriu nodurile de stocare și fluxurile datelor și inspectează structura sectorului brut. MsgReader şi MsgWriter gestionează formatul MSG deasupra CF B, expunând fluxuri ale proprietății MAPI, tabele destinatarilor și sub-stocări de atașamente. la nivel înalt,MapiMessage vă permite să creați noi mesaje de la zero, să citiți, corpul, expeditorul și destinatarii, gestionați ataşamentele și să convertiți între formatele MS G și EML prin implementarea integrată a MIME.
Biblioteca vizează .NET 8.0 sau mai târziu și nu are dependențe native, făcându-l potrivit pentru Windows, Linux, macOS, containere Docker și funcții fără server. Pentru caracteristici suplimentare și suport comercial, a se vedea 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 după lanțul de nume.CfbDocument și serializați în baiti sau fișier prin CfbWriter.ToBytes() sau CfbWriter.WriteFile().CfbStorage și CfbStream la orice node de stolare înainte de serializare..msg accesul direct la CF B permite inspecție și reparare forensică.MsgReader.FromFile() sau MsgReader.FromStream() și accesați fluxurile de proprietate MAPI subiacente, înregistrările destinatarilor și subspațelele de stocare a atașamentelor.MsgDocument cu MsgWriter.ToBytes() sau MsgWriter.WriteFile().MsgStorage, MsgStream și MsgStorage.FindStream().MsgStorage.FindStream() și MsgStorage.FindStorage() pentru a localiza sub-înregistrări denumite..msg citite în masă din directorii de archive și extrag metadate sau atașamente..msg în mod programat și livrați-le sistemelor de poștă bazate pe Outlook.MapiMessage.Create(subject, body), setul SenderName , SenderEmailAddress și HtmlBody.To, Cc și Bcc destinatarilor prin intermediul AddRecipient() cu adresa de e-mail și numele afișat.AddAttachment() sau construiți obiecte MapiAttachment direct cuFilename, MimeType , ContentId și Data.message.Save() sau message.Save(stream) și încărcare cuMapiMessage.FromFile() ori MapiMessage.FromStream().message.Attachments și salvează 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 complet MapiMessage prin intermediul MapiMessage.LoadFromEml(stream).MapiMessage înapoi în formatul MIME cu message.SaveToEml() sau message.SaveToEml(stream)..eml și .msg într-un singur format..eml în cadrul testelor și verificați dacă acestea supraviețuiesc călătoriei MSG fără pierderi de date.Deschideți un fișier Outlook MSG dintr-un flux și imprimați 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);
Construi un e-mail complet cu expeditor, destinatar și atașament, apoi scrieți-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 folosind 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);