1. محصولات
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS برای .NET

فایل‌های Outlook MSG، کانتینرهای CFB و پیام‌های EML را از .NET بخوانید، ایجاد کنید و پردازش کنید — رایگان و منبع باز، بدون وابستگی به Microsoft Outlook.

کتابخانه منبع باز .NET برای فایل‌های MSG، CFB و EML

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 مراجعه کنید.

خواندن و نوشتن کانتینر CFB

  • Open CFB files: بارگذاری کانتینرهای CFB موجود از مسیر فایل، جریان یا آرایه بایت از طریق CfbReader.FromFile()، CfbReader.FromStream() یا new CfbReader(data).
  • درخت دایرکتوری را پیمایش کنید: ذخیره‌سازی‌ها، جریان‌ها و فرزندان را با استفاده از IterStorages()، IterStreams()، IterChildren() و IterTree() تکرار کنید.
  • مسیرها را حل کنید: با ResolvePath(names) در سلسله‌مراتب‌های ذخیره‌سازی تو در تو حرکت کنید تا یک جریان خاص را بر اساس زنجیره نام پیدا کنید.
  • نوشتن کانتینرهای CFB: سندهای CFB را به‌صورت برنامه‌نویسی با CfbDocument بسازید و به بایت‌ها یا فایل از طریق CfbWriter.ToBytes() یا CfbWriter.WriteFile() سریالایز کنید.
  • افزودن ذخیره‌سازی‌ها و جریان‌ها: گره‌های CfbStorage و CfbStream را قبل از سریال‌سازی به هر گره ذخیره‌سازی متصل کنید.

جایی که دسترسی CFB استفاده می‌شود

  • بازرسی فایل MSG: CFB فرمت ظرف برای فایل‌های Outlook .msg است — دسترسی مستقیم به CFB امکان بازرسی و تعمیر قانونی را فراهم می‌کند.
  • Custom binary formats: هر برنامهٔ قدیمی که از CFB برای ذخیره‌سازی داده‌ها استفاده می‌کند می‌تواند بدون وابستگی به COM خوانده یا نوشته شود.
  • بازیابی داده‌ها: درخت کامل دایرکتوری را پیمایش کنید و بایت‌های جریان خام را از فایل‌های CFB آسیب‌دیده یا غیراستاندارد استخراج کنید.
  • Binary round-trip testing: یک سند را به بایت‌ها سریال‌سازی کنید و آن را مجدداً بارگذاری کنید تا سریال‌سازی بدون فقدان را در تست‌های خودکار تأیید کنید.

خواندن و نوشتن فایل MSG

  • Read MSG files: Open Outlook MSG files with MsgReader.FromFile() or MsgReader.FromStream() and access the underlying MAPI property streams, recipient records, and attachment sub-storages.
  • نوشتن فایل‌های MSG: فایل‌های MSG را از یک MsgDocument با MsgWriter.ToBytes() یا MsgWriter.WriteFile() تولید کنید.
  • دسترسی سطح پایین MAPI: خواندن جریان‌های ویژگی سطح بالا، ویژگی‌های نام‌گذاری‌شده و داده‌های پیوست از طریق MsgStorage، MsgStream و MsgStorage.FindStream().
  • ناوبری ذخیره‌سازی MSG: از MsgStorage.FindStream() و MsgStorage.FindStorage() برای یافتن زیرورودی‌های نام‌گذاری‌شده استفاده کنید.

محل استفاده از پردازش MSG

  • پایپلاین‌های بایگانی ایمیل: فایل‌های .msg را به صورت دسته‌ای بخوانید از دایرکتوری‌های بایگانی و متادیتا یا پیوست‌ها را استخراج کنید.
  • ابزارهای مهاجرت: تبدیل مجموعه‌های MSG به فرمت‌های استاندارد برای وارد کردن به سیستم‌های غیر‑Outlook.
  • Legal discovery: تجزیه و تحلیل جریان‌های ویژگی MAPI خام برای استخراج تمام فیلدهای پیام شامل ویژگی‌های غیر استاندارد.
  • تحویل خودکار گزارش: فایل‌های .msg را به‌صورت برنامه‌نویسی ساخته و به سیستم‌های ایمیل مبتنی بر Outlook تحویل دهید.

API پیام سطح بالا

  • ایجاد پیام‌ها: یک ایمیل کامل را با 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().

محل استفاده از API سطح بالا

  • تولید خودکار ایمیل: هزاران فایل MSG شخصی‌سازی‌شده را از رکوردهای داده در کارهای دسته‌ای تولید کنید.
  • ایجاد فیکسچر تست: ساخت فایل‌های MSG معتبر با محتوای پیش‌بینی‌پذیر برای مجموعه‌های تست یکپارچه‌سازی.
  • استخراج پیوست: یک فایل MSG را بارگذاری کنید، message.Attachments را تکرار کنید، و هر attachment.Data را روی دیسک ذخیره کنید.
  • بازرسی ویژگی: دسترسی به message.Subject، message.Body، message.SenderEmailAddress و message.Recipients بدون COM automation.

تبدیل EML و MIME

  • Load EML into MapiMessage: یک فایل استاندارد .eml (RFC 5322 / MIME) را به یک شیء کامل MapiMessage از طریق MapiMessage.LoadFromEml(stream) تجزیه کنید.
  • ذخیره MapiMessage به صورت EML: یک MapiMessage را به فرمت MIME بازگردانید با message.SaveToEml() یا message.SaveToEml(stream).
  • Round-trip fidelity: موضوع، بدنه، HTML بدنه، فرستنده، گیرندگان و پیوست‌ها همگی در طول مسیرهای EML → MSG → EML حفظ می‌شوند.
  • بدون تجزیه‌گر MIME خارجی: تجزیه EML به‌صورت بومی درون کتابخانه پیاده‌سازی شده است — نیازی به وابستگی System.Net.Mail نیست.

محل استفاده از تبدیل EML

  • پل‌برداری فرمت: ایمیل‌ها را به‌صورت EML از سرورهای ایمیل دریافت کنید و به MSG برای ذخیره‌سازی سازگار با Outlook تبدیل کنید.
  • تطبیق با استانداردها: تبدیل فایل‌های MSG اختصاصی به MIME استاندارد برای تحویل به هر سرویس حمل ایمیل.
  • نرمال‌سازی بایگانی: یک بایگانی ترکیبی از فایل‌های .eml و .msg را به یک فرمت واحد نرمال کنید.
  • فرآیندهای تست: در تست‌ها، فیکسچرهای .eml را تولید کنید و تأیید کنید که آنها بدون از دست رفتن داده، دور سفر MSG را پشت سر می‌گذارند.

خواندن موضوع از یک فایل 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

یک ایمیل کامل با فرستنده، گیرنده و پیوست بسازید، سپس آن را در یک فایل 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 به MSG

یک فایل استاندارد .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);
  

منابع پشتیبانی و آموزش

 فارسی