Εισαγωγή
Το Aspose.Email FOSS for .NET είναι μια δωρεάν, ανοιχτού κώδικα βιβλιοθήκη C# που σας επιτρέπει να εργάζεστε με αρχεία Outlook MSG, δοχεία Compound File Binary (CFB) και μηνύματα EML απευθείας στην εφαρμογή σας .NET — χωρίς Microsoft Outlook, χωρίς COM interop και χωρίς την ανάγκη εγγενών βιβλιοθηκών. Διανείμετε το ως ένα ενιαίο πακέτο NuGet και λειτουργεί ταυτόσημα σε Windows, Linux, macOS, Docker containers και serverless functions.
Η βιβλιοθήκη λύνει ένα επαναλαμβανόμενο πρόβλημα στην επιχειρηματική και ενσωμάτωση: τα αρχεία Outlook .msg παράγονται από εκατομμύρια επιχειρηματικούς χρήστες, αλλά η ανάλυσή τους χωρίς το Outlook απαιτούσε ιστορικά αυτοματοποίηση COM ή ακριβές εμπορικές βιβλιοθήκες. Το Aspose.Email FOSS for .NET παρέχει πλήρη υποστήριξη ανάγνωσης/εγγραφής για MSG, το υποκείμενο δυαδικό κοντέινερ CFB, και τη μορφή EML/MIME — όλα υπό την άδεια MIT χωρίς περιορισμούς χρήσης.
Είτε δημιουργείτε μια γραμμή αρχειοθέτησης email, ένα εργαλείο μετεγκατάστασης, έναν εξαγωγέα συνημμένων,
ή έναν αυτοματοποιημένο δημιουργό MSG, αυτή η βιβλιοθήκη σας παρέχει άμεση, χαμηλού επιπέδου πρόσβαση σε κάθε byte της
μορφής email, μαζί με ένα υψηλού επιπέδου MapiMessage API που σας επιτρέπει να ξεκινήσετε σε λίγα λεπτά.
Κύρια Χαρακτηριστικά
Ανάγνωση αρχείων Outlook MSG
Ανοίξτε οποιοδήποτε .msg αρχείο από διαδρομή ή ροή με MsgReader.FromFile() ή MsgReader.FromStream().
Προσπελάστε το πλήρες ρεύμα ιδιοτήτων MAPI, τις εγγραφές παραληπτών και τις υποαποθηκεύσεις συνημμένων στο
ακατέργαστο επίπεδο byte μέσω MsgStorage και 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);
Δημιουργία αρχείων MSG από το μηδέν
Δημιουργήστε ένα πλήρες email προγραμματιστικά χρησιμοποιώντας MapiMessage.Create(). Ορίστε το θέμα, plain‑text
σώμα, HTML σώμα, όνομα αποστολέα, διεύθυνση email αποστολέα, ώρα παράδοσης και internet message ID, στη συνέχεια
προσθέστε παραλήπτες με AddRecipient() και συνημμένα με AddAttachment(). Σειριοποιήστε με
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);
Μετατροπή EML σε MSG (και αντίστροφα)
Φορτώστε ένα τυπικό αρχείο RFC 5322 .eml σε ένα MapiMessage με MapiMessage.LoadFromEml(),
στη συνέχεια αποθηκεύστε το ως αρχείο Outlook .msg — ή αντιστρέψτε τη διαδικασία με MapiMessage.SaveToEml().
Ο ενσωματωμένος αναλυτής MIME διατηρεί το θέμα, το σώμα, το HTML σώμα, τον αποστολέα, τους παραλήπτες και τα συνημμένα
μέσω πλήρων μετατροπών 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);
Πρόσβαση χαμηλού επιπέδου σε CFB Container
Τα αρχεία Outlook MSG είναι χτισμένα στη μορφή Compound File Binary (CFB) — ένα ιεραρχικό δυαδικό κοντέινερ παρόμοιο με σύστημα αρχείων. CfbReader εκθέτει το πλήρες δέντρο καταλόγου: επανάληψη αποθηκευτικών χώρων και ροών με IterStorages(), IterStreams() και IterChildren(), περιήγηση σε συγκεκριμένες καταχωρήσεις με διαδρομή με ResolvePath(), και ανάγνωση ακατέργαστων bytes ροής με GetStreamData().
CfbWriter σας επιτρέπει να δημιουργήσετε και να σειριοποιήσετε ένα έγγραφο CFB από το μηδέν. Δημιουργήστε ένα CfbDocument,
συνδέστε τους κόμβους CfbStorage και CfbStream, και καλέστε το CfbWriter.ToBytes() ή
CfbWriter.WriteFile() για σειριοποίηση.
Πρόσβαση σε Ιδιότητα MAPI και Συνημμένα
Η κλάση MapiPropertyCollection παρέχει τυποποιημένη πρόσβαση σε ιδιότητες MAPI για οποιοδήποτε MSG ή αποθήκευσης
αντικείμενο: χρησιμοποιήστε Get(), Set(), Add() και Remove() με τις τυπικές τιμές enum CommonMessagePropertyId
ή PropertyTypeCode. Πρόσβαση σε μεταδεδομένα συνημμένων και δυαδικά δεδομένα μέσωMapiAttachment ιδιοτήτων: Filename, MimeType, ContentId και Data.
Γρήγορη εκκίνηση
Εγκαταστήστε το πακέτο:
dotnet add package Aspose.Email.Foss
Διαβάστε το θέμα από ένα αρχείο 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})");
Υποστηριζόμενες Μορφές
| Μορφή | Επέκταση | Ανάγνωση | Εγγραφή |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Ανοιχτός Κώδικας & Άδειες
Το Aspose.Email FOSS για .NET κυκλοφορεί υπό την άδεια MIT.
Μπορείτε να το χρησιμοποιήσετε ελεύθερα σε προσωπικά, εμπορικά και ανοιχτού κώδικα έργα χωρίς περιορισμούς χρήσης. Ο πηγαίος κώδικας είναι διαθέσιμος στο
github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.