المقدمة

Aspose.Email FOSS for .NET هي مكتبة مجانية ومفتوحة المصدر بلغة C# تتيح لك العمل مع Outlook
ملفات MSG، حاويات Compound File Binary (CFB)، ورسائل EML مباشرةً في تطبيق .NET الخاص بك
— لا Microsoft Outlook، لا COM interop، ولا مكتبات أصلية مطلوبة. وزع
ها كحزمة NuGet واحدة وتعمل بشكل متماثل على Windows وLinux وmacOS وحاويات Docker،
والوظائف الخالية من الخادم.

تحل المكتبة مشكلة متكررة في أعمال المؤسسات والتكامل: ملفات Outlook .msg يتم إنتاجها من قبل ملايين المستخدمين في الأعمال، لكن تحليلها بدون Outlook كان تاريخيًا يتطلب أتمتة COM أو مكتبات تجارية مكلفة. توفر Aspose.Email FOSS لـ .NET دعمًا كاملاً للقراءة/الكتابة لـ MSG، وحاوية CFB الثنائية الأساسية، وتنسيق EML/MIME — كل ذلك تحت ترخيص MIT دون أي قيود على الاستخدام.

سواء كنت تبني خط أنابيب أرشفة البريد الإلكتروني، أو أداة ترحيل، أو مستخرج مرفقات، أو مولد MSG تلقائي، فإن هذه المكتبة تمنحك وصولًا مباشرًا منخفض المستوى إلى كل بايت من تنسيق البريد الإلكتروني إلى جانب واجهة برمجة تطبيقات MapiMessage عالية المستوى التي تتيح لك البدء في دقائق.


الميزات الرئيسية

قراءة ملفات Outlook MSG

افتح أي ملف .msg من مسار أو تدفق باستخدام MsgReader.FromFile() أو MsgReader.FromStream().
الوصول إلى تدفق خصائص MAPI الكامل، سجلات المستلمين، وتخزينات المرفقات الفرعية على مستوى البايت الخام عبر 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 من الصفر

قم بإنشاء بريد إلكتروني كامل برمجيًا باستخدام MapiMessage.Create(). اضبط الموضوع، نص عادي الجسم، جسم HTML، اسم المرسل، عنوان بريد المرسل الإلكتروني، وقت التسليم، ومعرّف الرسالة على الإنترنت، ثم أضف المستلمين باستخدام 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 (والعكس)

حمّل ملف .eml RFC 5322 القياسي إلى 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

ملفات Outlook MSG مبنية على تنسيق Compound File Binary (CFB) — حاوية ثنائية هرمية تشبه نظام الملفات. CfbReader يكشف شجرة الدليل الكاملة: استعرض التخزينات والتدفقات باستخدام IterStorages()، IterStreams()، وIterChildren()، وانتقل إلى الإدخالات المحددة عبر المسار باستخدام ResolvePath()، واقرأ بايتات التدفق الخام باستخدام GetStreamData().

CfbWriter يتيح لك إنشاء وتسلسل مستند CFB من الصفر. أنشئ CfbDocument، وأرفق عقد CfbStorage وCfbStream، واستدعِ CfbWriter.ToBytes() أو CfbWriter.WriteFile() للتسلسل.

الوصول إلى خصائص MAPI والمرفقات

توفر الفئة MapiPropertyCollection وصولًا إلى خصائص MAPI ذات النوع لأي MSG أو تخزين
كائن: استخدم Get()، Set()، Add()، وRemove() مع القيم القياسية 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 for .NET تم إصداره تحت رخصة MIT. يمكنك استخدامه بحرية في
المشاريع الشخصية، التجارية، ومفتوحة المصدر دون أي قيود على الاستخدام. الشيفرة المصدرية
متاحة على
github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.


البدء