FOSS per .NET és una biblioteca C# lliure de dependències amb llicència MIT, que funciona amb arxius Microsoft Outlook .msg , contenidors Compound File Binary (CFB) i missatges EML. Afegeix un únic paquet NuGet i comença immediatament a llegir, crear i processar missages d’e-mail sense instal·lar Microsoft Excel o cap temps d ’exécution propietari.
La biblioteca proporciona dos nivells d’accés. En el nivell baix, CfbReader i CfbWriter donen control total sobre els contenidors binaris CFB entrades de directori transversals, llegeixen i escriuen nodes de magatzem i dades de flux, i inspeccionen l’estatus del sector brut. MsgReader I MsgWriter gestionen el format MSG a la part superior de CF B, exposant fluxos de propietats MAPI, taules de destinatari i sub-emmagatzematges d"accesos. Al nivell alt,MapiMessage et permet crear nous missatges des de zero, llegir, organitzar, enviar i administrar subjecte, adjuntar apanyaments, convertir entre format EMLIME i MS G mitjançant una implementació integrada en MIME.
La biblioteca està dirigida a .NET 8.0 o posterior i no té dependències natives, fent-la adequada per Windows, Linux, macOS, contenidors de Docker i funcions sense servidor. Per features addicionals i suport comercial, veure 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 serialitzar en bytes o arxiu a través d’CfbWriter.ToBytes() o CfbWriter.WriteFile().CfbStorage i CfbStream a qualsevol node d’emmagatzematge abans de la serialització..msg l’accés directe al CF B permet inspecció i reparació forense.MsgReader.FromFile() o MsgReader.FromStream() i accedeix als fluxos de propietats MAPI subjacents, registres dels destinataris i sot-emmagatzematges d’accesos.MsgDocument amb MsgWriter.ToBytes() o MsgWriter.WriteFile().MsgStorage, MsgStream i MsgStorage.FindStream().MsgStorage.FindStream() i MsgStorage.FindStorage() per localitzar subentries nomenades..msg des dels directoris d"archiu i extraure metadades o anexos..msg programàticament i lliurar-los als sistemes de correu basats en Outlook.MapiMessage.Create(subject, body), definir SenderName , SenderEmailAddress i HtmlBody.To, Cc i Bcc a través de AddRecipient() amb l’adreça de correu electrònic i el nom d’exposició.AddAttachment() o construir objectes MapiAttachment directament ambFilename, MimeType , ContentId i Data.message.Save() o message.Save(stream) i recarrejar ambMapiMessage.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 complet MapiMessage via MapiMessage.LoadFromEml(stream).MapiMessage de nou al format MIME amb message.SaveToEml() o message.SaveToEml(stream)..eml i .msg fitxers en un únic format..eml en proves i verificar que sobreviuen al viatge 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);
Construeix un correu electrònic complet amb remitent, destinatari i adjunt, després escriu-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);
Carregar un fitxer .eml estàndard i guardar-lo com a fichier Outlook .msg utilitzant l’anàlisi MIME incorporat.
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);