بارگذاری و ذخیره پیام ایمیل

بارگذاری پیام ایمیل

بارگذاری از EML

این بخش توضیح می‌دهد چگونه یک فایل EML را با استفاده از، به یک شیء MailMessage بارگذاری کنیم. EmlLoadOptions کلاس. کلاس EmlLoadOptions گزینه‌های مختلفی را برای سفارشی‌سازی نحوه بارگذاری فایل EML فراهم می‌کند، مانند حفظ قالب پیام‌های جاسازی‌شده یا کنترل رفتار بارگذاری پیوست‌های TNEF.

  1. یک نمونه از EmlLoadOptions را مقداردهی اولیه کنید.
  2. گزینه‌های بارگذاری را براساس نیاز پیکربندی کنید.
  3. از MailMessage.Load() متدی برای بارگذاری فایل EML با گزینه‌های مشخص‌شده.
using Aspose.Email;

// Initialize EmlLoadOptions
var loadOptions = new EmlLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Sets preferred encoding for the message
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Control TNEF attachment loading
    RemoveSignature = false // Do not remove the signature
};

// Load the EML file
var eml = MailMessage.Load("file.eml", loadOptions);

ویژگی‌های EmlLoadOptions

  • PreferredTextEncoding: رمزنگاری ترجیحی برای موضوع و متن پیام را تنظیم می‌کند. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: نشان می‌دهد که آیا قالب پیام‌های جاسازی‌شده در هنگام بارگذاری حفظ شود یا نه. مقدار پیش‌فرض false.
  • PreserveTnefAttachments: رفتار بارگذاری پیوست‌های TNEF را کنترل می‌کند. مقدار پیش‌فرض false.
  • RemoveSignature: مشخص می‌کند که آیا امضا در هنگام بارگذاری حذف شود یا نه. مقدار پیش‌فرض false.

حفظ قالب پیام جاسازی‌شده

بارگذاری پیام با امضا/بدون امضا

حفظ امضا به‌صورت پیش‌فرض هنگام بارگذاری فایل‌های EML پشتیبانی می‌شود. برای حذف امضا می‌توانید مقدار LoadOptions.RemoveSignature ویژگی را به true تنظیم کنید.

نمونه کد زیر نشان می‌دهد چگونه هنگام بارگذاری یک پیام امضا را حذف کنید:

var msg = MailMessage.Load(fileName, new EmlLoadOptions() { RemoveSignature = true});

بارگذاری از EMLX

بخش زیر بارگذاری یک فایل EMLX را با استفاده از EmlxLoadOptions کلاس. این کلاس گزینه‌هایی مشابه EmlLoadOptions ارائه می‌دهد که کنترل بر رمزگذاری، حذف امضا و موارد دیگر را فراهم می‌کند.

  1. یک نمونه از EmlxLoadOptions ایجاد کنید.
  2. ویژگی‌ها را به‌عنوان نیاز پیکربندی کنید.
  3. از MailMessage.Load() متد برای بارگذاری فایل EMLX.
using Aspose.Email;

// Instantiate EmlxLoadOptions
var loadOptions = new EmlxLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the EMLX file
var emlx = MailMessage.Load("file.emlx", loadOptions);

ویژگی‌های EmlxLoadOptions

  • PreferredTextEncoding: رمزنگاری ترجیحی برای موضوع و متن پیام را تنظیم می‌کند. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: نشان می‌دهد که آیا قالب پیام‌های جاسازی‌شده حفظ شود یا نه. مقدار پیش‌فرض false.
  • RemoveSignature: مشخص می‌کند که آیا امضا در هنگام بارگذاری حذف شود یا نه. مقدار پیش‌فرض false.

بارگذاری از HTML

یاد بگیرید چگونه یک فایل HTML را با استفاده از HtmlLoadOptions کلاس. این کلاس به‌طور ویژه برای مدیریت محتوای HTML با گزینه‌هایی برای مدیریت منابع و افزودن نمای متن ساده طراحی شده است.

  1. یک نمونه از HtmlLoadOptions را مقداردهی اولیه کنید.
  2. ویژگی‌های لازم را پیکربندی کنید.
  3. از MailMessage.Load() متد برای بارگذاری فایل HTML با گزینه‌های مشخص شده.
using Aspose.Email;

// Initialize HtmlLoadOptions
var loadOptions = new HtmlLoadOptions
{
    // Configure load options
    PathToResources = "resources/", // Path to directory containing resource files
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    ShouldAddPlainTextView = true // Add plain text view of the body
};

// Load the HTML file
var html = MailMessage.Load("file.html", loadOptions);

ویژگی‌های HtmlLoadOptions

  • PathToResources: مسیر دایرکتوری حاوی فایل‌های منبع (مثلاً تصاویر) را تعریف می‌کند.
  • PreferredTextEncoding: تنظیم رمزگذاری مورد پسند برای موضوع و بدنه پیام. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: تعیین می‌کند آیا فرمت پیام‌های توکار حفظ شود یا نه. مقدار پیش‌فرض false.
  • ShouldAddPlainTextView: مشخص می‌کند آیا نمای متن ساده‌ای از بدنه پیام اضافه شود یا نه. مقدار پیش‌فرض false.

بارگذاری از MHTML

این بخش توضیح می‌دهد چگونه یک فایل MHTML را با استفاده از MhtmlLoadOptions کلاس. کلاس MhtmlLoadOptions گزینه‌هایی برای مدیریت رمزگذاری، حفظ فرمت پیام‌های توکار و رسیدگی به پیوست‌های TNEF ارائه می‌دهد.

  1. یک نمونه از MhtmlLoadOptions ایجاد کنید.
  2. ویژگی‌های مورد نظر را پیکربندی کنید.
  3. فایل MHTML را با استفاده از MailMessage.Load() متد.
using Aspose.Email;

// Create MhtmlLoadOptions
var loadOptions = new MhtmlLoadOptions
{
    // Set load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve format of embedded messages
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false // Keep the signature
};

// Load the MHTML file
var mhtml = MailMessage.Load("file.mht", loadOptions);

ویژگی‌های MhtmlLoadOptions

  • MessageFormat: قالب پیام ایمیل را نشان می‌دهد که می‌تواند EML، MSG یا MHTML باشد. مقدار پیش‌فرض EML است.
  • PreferredTextEncoding: رمزنگاری ترجیحی برای موضوع و متن پیام را تنظیم می‌کند. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: تعیین می‌کند آیا فرمت پیام‌های توکار حفظ شود یا نه. مقدار پیش‌فرض false.
  • PreserveTnefAttachments: رفتار بارگذاری پیوست‌های TNEF را کنترل می‌کند. مقدار پیش‌فرض false.
  • RemoveSignature: مشخص می‌کند که آیا امضا در هنگام بارگذاری حذف شود یا نه. مقدار پیش‌فرض false.

بارگذاری از MSG

این بخش توضیح می‌دهد چگونه یک فایل MSG را با استفاده از MsgLoadOptions کلاس. کلاس MsgLoadOptions ویژگی‌های متعددی را برای کنترل نحوه بارگذاری فایل‌های MSG ارائه می‌دهد، از جمله گزینه‌هایی برای حفظ محتوای RTF یا مدیریت پیوست‌های TNEF.

  1. یک نمونه از MsgLoadOptions ایجاد کنید.
  2. ویژگی‌های دلخواه را برای سفارشی‌سازی بارگذاری تنظیم کنید.
  3. بارگذاری فایل MSG با استفاده از MailMessage.Load() متد.
using Aspose.Email;

// Create MsgLoadOptions
var loadOptions = new MsgLoadOptions
{
    // Set load options
    KeepOriginalEmailAddresses = true, // Preserve original email addresses
    PreferredTextEncoding = Encoding.UTF8, // Set preferred encoding
    PreserveRtfContent = true, // Keep RTF content in the message
    PreserveTnefAttachments = true, // Handle TNEF attachments
    RemoveSignature = false, // Keep the signature
    Timeout = 5000 // Set timeout to 5 seconds
};

// Load the MSG file
var msg = MailMessage.Load("file.msg", loadOptions);

ویژگی‌های MsgLoadOptions

  • KeepOriginalEmailAddresses: نشان می‌دهد آیا آدرس‌های ایمیل اصلی حفظ شوند یا نه. مقدار پیش‌فرض false.
  • PreferredTextEncoding: رمزگذاری مورد پسند برای موضوع و بدنه پیام را تعریف می‌کند. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: تعیین می‌کند آیا فرمت پیام‌های توکار باید حفظ شود یا نه. مقدار پیش‌فرض false.
  • PreserveRtfContent: مشخص می‌کند آیا محتویات بدنه RTF در MailMessage. مقدار پیش‌فرض false.
  • PreserveTnefAttachments: رفتار بارگذاری پیوست‌های TNEF را مدیریت می‌کند. مقدار پیش‌فرض false.
  • RemoveSignature: تصمیم می‌گیرد که آیا امضا در هنگام بارگذاری حذف شود یا نه. مقدار پیش‌فرض false.
  • زمان انتظار: زمان قالب‌بندی را بر حسب میلی‌ثانیه در زمان تبدیل محدود می‌کند. مقدار پیش‌فرض ۳۰۰۰ میلی‌ثانیه است.

بارگذاری از TNEF

یاد بگیرید چگونه یک فایل TNEF eml را با TnefLoadOptions کلاس. این کلاس گزینه‌هایی برای مدیریت رمزنگاری و حذف امضاها در طول فرایند بارگذاری فراهم می‌کند.

  1. یک نمونه از TnefLoadOptions ایجاد کنید.
  2. ویژگی‌ها را براساس نیاز پیکربندی کنید.
  3. از MailMessage.Load() متدی برای بارگذاری فایل TNEF.
using Aspose.Email;

// Instantiate TnefLoadOptions
var loadOptions = new TnefLoadOptions
{
    // Configure load options
    PreferredTextEncoding = Encoding.UTF8, // Set encoding preference
    PreserveEmbeddedMessageFormat = true, // Preserve embedded message formats
    RemoveSignature = true // Remove signatures during loading
};

// Load the TNEF file
var tnef = MailMessage.Load("file.eml", loadOptions);

ویژگی‌های TnefLoadOptions

  • MessageFormat: قالب پیام ایمیل را نشان می‌دهد، مانند EML، MSG یا MHTML. مقدار پیش‌فرض EML است.
  • PreferredTextEncoding: رمزنگاری ترجیحی برای موضوع و متن پیام را تنظیم می‌کند. مقدار پیش‌فرض null.
  • PreserveEmbeddedMessageFormat: نشان می‌دهد که آیا قالب پیام‌های جاسازی‌شده حفظ شود یا نه. مقدار پیش‌فرض false.
  • RemoveSignature: مشخص می‌کند که آیا امضا در هنگام بارگذاری حذف شود یا نه. مقدار پیش‌فرض false.

شناسایی فرمت‌های فایل

API Aspose.Email قابلیت تشخیص فرمت فایل پیام ارائه‌شده را فراهم می‌کند. The DetectFileFormat متد FileFormatUtil کلاسی که می‌تواند برای این منظور استفاده شود. کلاس‌ها و متدهای زیر می‌توانند برای تشخیص فرمت فایل بارگذاری شده استفاده شوند.

قطعه کد زیر نشان می‌دهد چگونه فرمت فایل‌ها را تشخیص دهید.

ذخیره و تبدیل پیام‌ها

Aspose.Email تبدیل هر نوع پیام به قالب دیگری را آسان می‌کند. برای نشان دادن این ویژگی، کد این مقاله سه نوع پیام را از دیسک بارگذاری کرده و دوباره در قالب‌های دیگر ذخیره می‌کند. کلاس پایه SaveOptions و کلاس‌ها EmlSaveOptions, MsgSaveOptions, MhtSaveOptions, HtmlSaveOptions برای تنظیمات اضافی هنگام ذخیره‌سازی MailMessage می‌تواند برای ذخیره پیام‌ها به قالب‌های دیگر استفاده شود. مقاله نشان می‌دهد چگونه از این کلاس‌ها برای ذخیره یک ایمیل نمونه به عنوان:

  • قالب EML.
  • Outlook MSG.
  • قالب MHTML.
  • قالب HTML.

ذخیره به EML

قطعه کد زیر نشان می‌دهد چگونه یک پیام EML را بارگذاری کنید و آن را به همان قالب بر روی دیسک ذخیره کنید.

حفظ مرزهای اصلی

قطعه کد زیر نشان می‌دهد چگونه EML را بارگذاری کنید و به عنوان EML ذخیره کنید در حالی که مرزهای اصلی حفظ می‌شوند.

حفظ پیوست‌های TNEF

قطعه کد زیر نشان می‌دهد چگونه به عنوان EML ذخیره کنید در حالی که پیوست‌های TNEF حفظ می‌شوند.

ذخیره EML به MSG

قطعه کد زیر نشان می‌دهد چگونه یک پیام EML را بارگذاری کنید و با استفاده از گزینه مناسب از آن به MSG تبدیل کنید SaveOptions.

حفظ تاریخ‌ها

این MsgSaveOptions این کلاس به شما امکان می‌دهد پیام منبع را به‌صورت فایل Outlook Message (MSG) ذخیره کنید و تاریخ‌ها را حفظ کنید. قطعه کد زیر نشان می‌دهد چگونه با حفظ تاریخ‌ها به MSG ذخیره شود.

ذخیره EML به MHTML

گزینه‌های مختلف MHTML می‌توانند برای دست‌یابی به نتایج مطلوب استفاده شوند. قطعه کد زیر نشان می‌دهد چگونه یک پیام EML را بارگذاری کنید در MailMessage و تبدیل آن به MHTML با تاریخ پیام در سیستم UTC.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET

// Set options for MHTML output
MhtSaveOptions saveOptions = SaveOptions.DefaultMhtml;
saveOptions.PreserveOriginalDate = false; // save a message date as UTC date

// Initialize and load an existing EML file
using (MailMessage mailMessage = MailMessage.Load(folderPath + "Message.eml"))
{
    mailMessage.Save(folderPath + "Message_out.mhtml", saveOptions);
}

گزینه‌های تبدیل

این MhtSaveOptions کلاسی که گزینه‌های اضافی برای ذخیره پیام‌های ایمیل به قالب MHTML فراهم می‌کند. شمارنده MhtFormatOptions امکان نوشتن اطلاعات ایمیل اضافی به MHTML خروجی را فراهم می‌کند. فیلدهای اضافی زیر می‌توانند نوشته شوند:

  • WriteHeader – هدر ایمیل را به فایل خروجی می‌نویسد.
  • WriteOutlineAttachments – پیوست‌های طرح کلی را به فایل خروجی می‌نویسد.
  • WriteCompleteEmailAddress – آدرس ایمیل کامل را به فایل خروجی می‌نویسد.
  • NoEncodeCharacters – نباید از رمزگذاری انتقال کاراکترها استفاده شود.
  • HideExtraPrintHeader – سرصفحه چاپ اضافی را از بالای فایل خروجی پنهان می‌کند.
  • WriteCompleteToEmailAddress – آدرس ایمیل کامل گیرنده را به فایل خروجی می‌نویسد.
  • WriteCompleteFromEmailAddress – آدرس ایمیل کامل فرستنده را به فایل خروجی می‌نویسد.
  • WriteCompleteCcEmailAddress – آدرس ایمیل کامل دریافت‌کنندگان کاربن‌کپی شده را به فایل خروجی می‌نویسد.
  • WriteCompleteBccEmailAddress – آدرس ایمیل کامل دریافت‌کنندگان بلیند کاربن‌کپی شده را به فایل خروجی می‌نویسد.
  • RenderCalendarEvent – متن رویداد تقویم را به فایل خروجی می‌نویسد.
  • SkipByteOrderMarkInBody – بایت‌های نشانه ترتیب بایت (BOM) را به فایل خروجی می‌نویسد.
  • RenderVCardInfo – متن را از VCard AlternativeView به فایل خروجی می‌نویسد.
  • DisplayAsOutlook – نمایش هدر From.
  • RenderTaskFields – فیلدهای خاص Task را به فایل خروجی می‌نویسد.
  • None – تنظیمی مشخص نشده است.

قطعه کد زیر نشان می‌دهد چگونه فایل‌های EML را به MHTML تبدیل کنید با تنظیمات اختیاری.

رندر رویدادهای تقویم

این MhtFormatOptions.RenderCalendarEvent رویدادهای تقویم را به خروجی MHTML رندر می‌کند. قطعه کد زیر نشان می‌دهد چگونه رویدادهای تقویم را هنگام تبدیل به MHTML رندر کنید.

صادر کردن ایمیل به MHT بدون تصاویر درون‌خط

صادر کردن ایمیل به MHT با منطقهٔ زمانی سفارشی

MailMessage کلاس فراهم می‌کند TimeZoneOffset ویژگی برای تنظیم منطقه زمانی سفارشی هنگام صادرات به MHT. قطعه کد زیر نشان می‌دهد چگونه ایمیل را به MHT با منطقه زمانی سفارشی صادر کنید.

تنظیم فونت

ذخیره EML به HTML

این HtmlSaveOptions کلاس به شما اجازه می‌دهد بدنه پیام را به HTML صادر کنید. قطعه کد زیر نشان می‌دهد چگونه یک پیام را به شکل HTML ذخیره کنید.

ذخیره بدون منابع توکار

ذخیره EML به OFT

قطعه کد زیر نشان می‌دهد چگونه یک پیام را به عنوان فایل قالب Outlook (.oft) ذخیره کنید.

تبدیل EML به MSG (MailMessage به MapiMessage)

برای تبدیل یک MailMessage شیء بارگذاری‌شده از یک فایل EML به یک MapiMessage برای شیء، از MapiConversionOptions کلاس. این تبدیل اغلب لازم است چون این دو شیء برای مقاصد متفاوت و نیازهای خاص در پردازش ایمیل به کار می‌روند. MapiMessage به‌طور خاص برای سازگاری با Microsoft Outlook و Exchange Server طراحی شده است، زیرا با فرمت Messaging Application Programming Interface (MAPI) سازگار است. این اطمینان می‌دهد که ایمیل‌های تبدیل‌شده به فایل‌های MSG کاملاً با محصولات Microsoft سازگار باشند و بتوان آنها را مستقیماً در Outlook باز، ویرایش و مدیریت کرد.

این تبدیل همچنین زمانی ضروری است که ایمیل‌ها نیاز به بایگانی، فهرست‌گذاری یا پردازش توسط ذخیره‌سازهایی که نیاز به فرمت MAPI، PST/OST، OLM دارند، داشته باشند. این MapiConversionOptions کلاسی که به شما امکان می‌دهد گزینه‌های اضافی مانند حفظ فرمت پیام اصلی، نگه داشتن تاریخ‌های اصلی و فشرده‌سازی بدنه RTF در حین تبدیل را مشخص کنید. نمونه کد زیر نشان می‌دهد چگونه ایمیلی را از فایلی با فرمت .eml بارگذاری و به فرمت Outlook .msg تبدیل کنید، به‌گونه‌ای که امکان سفارشی‌سازی وجود داشته باشد اما اطمینان حاصل شود برخی ویژگی‌های ایمیل اصلی در حین تبدیل حفظ می‌شوند.

  1. یک نمونه از MapiConversionOptions و ویژگی‌های آن را پیکربندی کنید.
  2. تبدیل MailMessage شیء به MapiMessage شیء با استفاده از گزینه‌های تبدیل پیکربندی‌شده.
MailMessage eml = MailMessage.Load("email.eml", new EmlLoadOptions());

// Create an instance of MapiConversionOptions
var conversionOptions = new MapiConversionOptions
{
    // Configure MapiConversionOptions
    Format = OutlookMessageFormat.Unicode, // Use Unicode format for MSG
    PreserveEmbeddedMessageFormat = true, // Preserve the format of embedded messages
    PreserveOriginalAddresses = true, // Keep original email addresses
    PreserveOriginalDates = true, // Preserve original dates
    PreserveEmptyDates = false, // Generate new dates if original are empty
    RemoveSignature = false, // Do not remove the signature
    UseBodyCompression = true, // Enable RTF body compression
    ForcedRtfBodyForAppointment = false // Disable forced RTF body for appointments
};

// Convert MailMessage to MapiMessage
MapiMessage msg = MapiMessage.FromMailMessage(eml, conversionOptions);

ویژگی‌های موجود در MapiConversionOptions

  • فرمت ASCII: برمی‌گرداند MapiConversionOptions پیکربندی شده با OutlookMessageFormat به عنوان ASCII، با PreserveSignature به false تنظیم شود و UseBodyCompression به false تنظیم شود. این گزینه زمانی مفید است که به یک تبدیل به فرمت ساده ASCII نیاز دارید.

  • UnicodeFormat: برمی‌گرداند MapiConversionOptions با OutlookMessageFormat به Unicode تنظیم شود، و هر دو PreserveSignature و UseBodyCompression بر روی false تنظیم شود. از این گزینه برای پشتیبانی گسترده‌تر از کاراکترها در فایل‌های MSG استفاده کنید.

  • ForcedRtfBodyForAppointment: وقتی روی true تنظیم شود، استفاده از بدنه RTF برای قرارهای تقویمی را اجبار می‌کند. این برای اطمینان از سازگاری با برخی کلاینت‌های ایمیل مفید است. مقدار پیش‌فرض true است.

  • Format: فرمت خروجی برای فایل MSG را مشخص می‌کند. می‌تواند روی یکی از دو گزینه تنظیم شود OutlookMessageFormat.ASCII یا OutlookMessageFormat.Unicode، کنترل می‌کند آیا MSG تبدیل‌شده باید از رمزگذاری ASCII یا Unicode استفاده کند.

  • PreserveEmbeddedMessageFormat: تعیین می‌کند آیا فرمت اصلی EML پیام‌های توکار در هنگام تبدیل به MapiMessage. تنظیم آن به true تضمین می‌کند ایمیل‌های توکار ساختار اصلی خود را حفظ کنند. مقدار پیش‌فرض false است.

  • PreserveEmptyDates: وقتی روی true تنظیم شود، تاریخ‌های ذخیره‌سازی و تغییر اصلی از EML نگه‌داشته می‌شود. در غیر این صورت، اگر تاریخ‌های اصلی خالی باشند، تاریخ‌های جدید تولید می‌شوند.

  • PreserveOriginalAddresses: اگر روی true تنظیم شود، آدرس‌های ایمیل اصلی بدون اعتبارسنجی حفظ می‌شوند. این زمانی مفید است که با آدرس‌های ایمیلی کار می‌کنید که ممکن است با استانداردهای سختگیرانه سازگار نباشند اما باید به‌همین‌صورت نگه داشته شوند. مقدار پیش‌فرض false است.

  • PreserveOriginalDates: اطمینان می‌دهد تاریخ‌های ارسال و دریافت اصلی در هنگام تبدیل حفظ شوند. تنظیم آن به true این تاریخ‌ها را برای دقت تاریخی بهتر نگه می‌دارد.

  • RemoveSignature: کنترل می‌کند آیا امضای دیجیتالی، در صورت وجود، در هنگام تبدیل از پیام حذف شود یا نه. مقدار پیش‌فرض false است، بدین معنی که امضا تا زمان حذف صریح حفظ می‌شود.

  • UseBodyCompression: اگر روی true تنظیم شود، فشرده‌سازی بدنه RTF را فعال می‌کند. این می‌تواند به کاهش حجم فایل MSG کمک کند، به‌ویژه هنگام کار با پیام‌های بزرگ با قالب‌بندی غنی.