Introducere
Aspose.Email FOSS for .NET este o bibliotecă gratuită, open-source C# care vă permite să lucrați cu fișiere Outlook MSG, containere Compound File Binary (CFB) și mesaje EML direct în aplicația dvs. .NET — fără Microsoft Outlook, fără interop COM și fără biblioteci native necesare. Distribuiți‑o ca un singur pachet NuGet și rulează identic pe Windows, Linux, macOS, containere Docker și funcții serverless.
Biblioteca rezolvă o problemă recurentă în munca de întreprindere și integrare: fișierele Outlook .msg sunt produse de milioane de utilizatori de business, dar parsarea lor fără Outlook a necesitat istoric automatizare COM sau biblioteci comerciale costisitoare. Aspose.Email FOSS for .NET oferă suport complet de citire/scriere pentru MSG, containerul binar CFB de bază și formatul EML/MIME — toate sub licența MIT, fără restricții de utilizare.
Indiferent dacă construiți un pipeline de arhivare a e-mailurilor, un instrument de migrare, un extractor de atașamente,
sau un generator automat de MSG, această bibliotecă vă oferă acces direct, la nivel scăzut, la fiecare byte al
formatului de e-mail, alături de o API de nivel înalt MapiMessage care vă permite să începeți în câteva minute.
Caracteristici principale
Citește fișiere Outlook MSG
Deschideți orice fișier .msg dintr-o cale sau flux cu MsgReader.FromFile() sau MsgReader.FromStream().
Accesați fluxul complet de proprietăți MAPI, înregistrările destinatarilor și sub‑stocările de atașamente la
nivelul brut al octeților prin MsgStorage și MsgStream.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Creare fișiere MSG de la zero
Construiți un e‑mail complet programatic utilizând MapiMessage.Create(). Setați subiectul, corpul în text simplu
corpul HTML, numele expeditorului, adresa de e‑mail a expeditorului, ora de livrare și ID‑ul mesajului pe internet, apoi
adăugați destinatarii cu AddRecipient() și atașamentele cu AddAttachment(). Serializați cu
message.Save().
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);
Conversie EML în MSG (și înapoi)
Încărcați un fișier standard RFC 5322 .eml într-un MapiMessage cu MapiMessage.LoadFromEml(),
apoi salvați-l ca fișier Outlook .msg — sau inversați procesul cu MapiMessage.SaveToEml().
Parserul MIME încorporat păstrează subiectul, corpul, corpul HTML, expeditorul, destinatarii și atașamentele
în timpul călătoriilor complete EML ↔ MSG.
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);
Acces la container CFB la nivel scăzut
Fișierele Outlook MSG sunt construite pe formatul Compound File Binary (CFB) — un container binar ierarhic similar cu un sistem de fișiere. CfbReader expune arborele complet de directoare: iterați stocările și fluxurile cu IterStorages(), IterStreams() și IterChildren(), navigați la intrări specifice prin cale cu ResolvePath() și citiți octeții brut ai fluxului cu GetStreamData().
CfbWriter îți permite să construiești și să serializezi un document CFB de la zero. Creează un CfbDocument,
atașează nodurile CfbStorage și CfbStream, și apelează CfbWriter.ToBytes() sau
CfbWriter.WriteFile() pentru a serializa.
Acces la proprietăţi şi ataşamente MAPI
Clasa MapiPropertyCollection oferă acces tipizat la proprietățile MAPI pentru orice obiect MSG sau de stocare: utilizați Get(), Set(), Add() și Remove() cu valorile standard ale enumului CommonMessagePropertyId sau PropertyTypeCode. Accesați metadatele atașamentului și datele binare prin proprietățile MapiAttachment: Filename, MimeType, ContentId și Data.
Începe rapid
Instalați pachetul:
dotnet add package Aspose.Email.Foss
Citește subiectul dintr-un fișier MSG:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
Formate acceptate
| Format | Extensie | Citire | Scriere |
|---|---|---|---|
| Fișier binar compus | .cfb | ✓ | ✓ |
| Mesaj Outlook | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Sursă deschisă și licențiere
Aspose.Email FOSS pentru .NET este lansat sub licența MIT. O puteți folosi liber în
proiecte personale, comerciale și open-source, fără restricții de utilizare. Codul sursă este
disponibil la
github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.