Aspose.Email FOSS برای .NET یک کتابخانه C# با مجوز MIT، بدون وابستگی است که برای کار با فایلهای .msg مایکروسافت اوتلوک، کانتینرهای Compound File Binary (CFB) و پیامهای EML طراحی شده است. یک بسته NuGet اضافه کنید و بلافاصله شروع به خواندن، ایجاد و پردازش پیامهای ایمیل کنید بدون اینکه نیاز به نصب مایکروسافت اوتلوک یا هر محیط اجرایی مالکیتی داشته باشید.
کتابخانه دو سطح دسترسی را فراهم میکند. در سطح پایین، CfbReader و CfbWriter کنترل کامل بر روی کانتینرهای باینری CFB را میدهند — مرور ورودیهای دایرکتوری، خواندن و نوشتن گرههای ذخیرهسازی و دادههای جریان، و بررسی چیدمان خام سکتور. MsgReader و MsgWriter فرمت MSG را بر روی CFB مدیریت میکنند و جریانهای ویژگی MAPI، جداول گیرندگان و زیرذخیرهسازیهای پیوست را نمایش میدهند. در سطح بالا، MapiMessage به شما امکان میدهد پیامهای جدید را از ابتدا ایجاد کنید، موضوع، بدنه، فرستنده و گیرندگان را بخوانید، پیوستها را مدیریت کنید و بین فرمتهای MSG و EML از طریق یک پیادهسازی داخلی MIME تبدیل کنید.
کتابخانه هدف .NET 8.0 یا بالاتر است و هیچ وابستگی بومی ندارد، که آن را برای ویندوز، لینوکس، macOS، کانتینرهای Docker و توابع بدون سرور مناسب میسازد. برای ویژگیهای اضافی و پشتیبانی تجاری، به Aspose.Email for .NET مراجعه کنید.
CfbReader.FromFile()، CfbReader.FromStream() یا new CfbReader(data).IterStorages()، IterStreams()، IterChildren() و IterTree() تکرار کنید.ResolvePath(names) در سلسلهمراتبهای ذخیرهسازی تو در تو حرکت کنید تا یک جریان خاص را بر اساس زنجیره نام پیدا کنید.CfbDocument بسازید و به بایتها یا فایل از طریق CfbWriter.ToBytes() یا CfbWriter.WriteFile() سریالایز کنید.CfbStorage و CfbStream را قبل از سریالسازی به هر گره ذخیرهسازی متصل کنید..msg است — دسترسی مستقیم به CFB امکان بازرسی و تعمیر قانونی را فراهم میکند.MsgReader.FromFile() or MsgReader.FromStream() and access the underlying MAPI property streams, recipient records, and attachment sub-storages.MsgDocument با MsgWriter.ToBytes() یا MsgWriter.WriteFile() تولید کنید.MsgStorage، MsgStream و MsgStorage.FindStream().MsgStorage.FindStream() و MsgStorage.FindStorage() برای یافتن زیرورودیهای نامگذاریشده استفاده کنید..msg را به صورت دستهای بخوانید از دایرکتوریهای بایگانی و متادیتا یا پیوستها را استخراج کنید..msg را بهصورت برنامهنویسی ساخته و به سیستمهای ایمیل مبتنی بر Outlook تحویل دهید.MapiMessage.Create(subject, body) بسازید، SenderName، SenderEmailAddress و HtmlBody را تنظیم کنید.To، Cc و Bcc دریافتکنندگان از طریق AddRecipient() با آدرس ایمیل و نام نمایشی.AddAttachment() یا ساختن اشیای MapiAttachment بهصورت مستقیم با Filename، MimeType، ContentId و Data.message.Save() یا message.Save(stream) و بارگذاری مجدد با MapiMessage.FromFile() یا MapiMessage.FromStream().message.Attachments را تکرار کنید، و هر attachment.Data را روی دیسک ذخیره کنید.message.Subject، message.Body، message.SenderEmailAddress و message.Recipients بدون COM automation..eml (RFC 5322 / MIME) را به یک شیء کامل MapiMessage از طریق MapiMessage.LoadFromEml(stream) تجزیه کنید.MapiMessage را به فرمت MIME بازگردانید با message.SaveToEml() یا message.SaveToEml(stream)..eml و .msg را به یک فرمت واحد نرمال کنید..eml را تولید کنید و تأیید کنید که آنها بدون از دست رفتن داده، دور سفر MSG را پشت سر میگذارند.یک فایل MSG Outlook را از یک جریان باز کنید و موضوع را چاپ کنید — بدون نیاز به 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);
یک ایمیل کامل با فرستنده، گیرنده و پیوست بسازید، سپس آن را در یک فایل 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);
یک فایل استاندارد .eml را بارگذاری کنید و آن را به عنوان یک فایل Outlook .msg ذخیره کنید با استفاده از تجزیهکننده داخلی MIME.
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);