ایجاد و ذخیره فایلهای Outlook
Aspose.Email از ایجاد فایلهای پیام Outlook (MSG) پشتیبانی میکند. این مقاله توضیح میدهد چگونه:
- ایجاد و ذخیره پیامهای Outlook
- ایجاد فایلهای MSG با پیوستها
- ایجاد فایلهای MSG با بدنه RTF
- ذخیره پیام در وضعیت پیشنویس
ایجاد و ذخیرهٔ پیامهای اوتلوک
این MailMessage کلاس دارای Save() متدی که میتواند فایلهای Outlook MSG را روی دیسک یا استریم ذخیره کند. کدهای نمونه زیر یک نمونه از MailMessage کلاس، ویژگیهایی مانند from، to، subject و body را تنظیم کنید. این Save() متد نام فایل را بهعنوان آرگومان میگیرد. علاوه بر این، پیامهای Outlook میتوانند با یک بدنهٔ RTF فشرده با استفاده از MapiConversionOptions.
- یک نمونهٔ جدید از MailMessage کلاس را میگیرد و ویژگیهای From، To، Subject و Body را تنظیم میکند.
- متد را فراخوانی کنید MapiMessage کلاس FromMailMessage متد که شیء از نوع MailMessage نوع. این FromMailMessage متد … را تبدیل میکند MailMessage به یک MapiMessage (MSG).
- متد را فراخوانی کنید MapiMessage.Save() متد برای ذخیرهٔ فایل MSG.
کد زیر را در رویداد کلیک کنترل دکمه برنامه ویندوز بنویسید.
ایجاد فایلهای MSG با پیوستها
در مثال بالا، یک فایل MSG ساده ایجاد کردیم. Aspose.Email همچنین از ذخیرهٔ فایلهای پیام با پیوستها پشتیبانی میکند. تنها کاری که باید انجام دهید این است که پیوستها را به MailMessage نمونه. پیوستها را با فراخوانی متد Add() روی MailMessage.Attachments مجموعه اضافه میشوند. یک ListBox به فرم ایجاد شده در بالا اضافه کنید و دو دکمه برای افزودن و حذف پیوستها اضافه کنید. برنامهای که برنامهها را اضافه میکند به این صورت کار میکند:
- زمانی که دکمه Add Attachment کلیک میشود، یک Open File Dialog نمایش داده میشود تا به کاربران در مرور و انتخاب پیوست کمک کند.
- وقتی فایلی انتخاب شد، مسیر کامل آن به یک لیست اضافه میشود.
- هنگام ایجاد فایل MSG، مسیرهای پیوست از فهرست گرفته شده و به MailMessage.Attachments مجموعه.
کد زیر را در رویداد کلیک دکمه Add Attachment بنویسید.
وقتی دکمه Remove Attachment کلیک میشود، موارد انتخاب شده را از ListBox حذف کنید. کد زیر را در رویداد کلیک دکمه Remove Attachment بنویسید.
کد افزودن پیوستها را به MailMessage نمونه. کد نهایی برای تابع Write Msg به صورت زیر نوشته شده است.
ایجاد فایلهای MSG با بدنهٔ RTF
میتوانید با Aspose.Email فایلهای پیام Outlook (MSG) با بدنهٔ متن غنی (RTF) نیز ایجاد کنید. بدنه RTF از قالببندی متن پشتیبانی میکند. برای ایجاد یک فایل، مقادیر مورد نیاز را تنظیم کنید. MailMessage.HtmlBody ویژگی. وقتی یک MailMessage نمونه به یک MapiMessage در این نمونه، بدنه HTML به RTF تبدیل میشود. به این ترتیب، قالببندی بدنهٔ ایمیل حفظ میشود.
مثال زیر یک فایل MSG با بدنه RTF ایجاد میکند. یک سرعنوان وجود دارد که قالببندی بولد و زیرخط در بدنه HTML اعمال شده است. این قالببندی هنگام تبدیل HTML به RTF حفظ میشود.
فشردهسازی RTF برای بدنه پیام MAPI
توجه: فرآیند فشردهسازی میتواند هنگام ایجاد پیامها عملکرد را کند کند. با درک این نکته و پیکربندی فلگ فشردهسازی بر اساس نیازهای خاص و تعادل بین حجم فایل و عملکرد، توسعهدهندگان میتوانند بهصورت مؤثر ایجاد فایلهای MSG و PST را هنگام کار با پیامهای ایمیل مدیریت کنند.
فشردهسازی RTF با هدف کاهش حجم پیام و همچنین فایلهای PST (Personal Storage Table) که مایکروسافت اوتلوک برای ذخیره پیامهای ایمیل و دادههای دیگر استفاده میکند، طراحی شده است. با استفاده از فشردهسازی RTF هنگام پیکربندی بدنه پیام، توسعهدهندگان میتوانند مقدار حافظه مورد نیاز برای ذخیره پیامهای ایمیل را کاهش دهند یا پهنای باند شبکه را هنگام انتقال پیامها بهینه کنند.
برای این منظور، دو متد overload شده طراحی شدهاند:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): این متد به شما امکان میدهد محتویات بدنه پیام را با استفاده از رشته مشخص شده تنظیم کنید و نوع محتویات بدنه (مثلاً متن ساده، HTML و غیره) را تعیین کنید. پارامتر اختیاری compression مقداری است که تعیین میکند آیا محتوا باید با فشردهسازی RTF فشرده شود یا نه. اگر این پارامتر true باشد، محتوا فشرده میشود و منجر به پیام کوچکتر میشود.
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): این متد بهطور خاص محتویات بدنه پیام را در قالب RTF تنظیم میکند. پارامتر content یک رشته است که محتوای RTF را نشان میدهد که به عنوان بدنه پیام تنظیم میشود. همانند متد قبلی، پارامتر compression تعیین میکند آیا فشردهسازی RTF باید روی محتوا اعمال شود یا نه. اگر compression برابر true باشد، محتوای RTF فشرده میشود تا حجم کاهش یابد.
نمونه کد زیر نشان میدهد چگونه بدنه HTML را تنظیم کنید و فشرده نگه دارید:
var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
همچنین یک MapiConversionOptions.UseBodyCompression ویژگی. وقتی این ویژگی فعال باشد، فشردهسازی بدنه RTF در طول تبدیل MailMessage به MapiMessage اعمال میشود و منجر به کاهش حجم فایل MSG میشود. در نمونه کد زیر نشان داده شده است:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
ذخیره پیام در وضعیت پیشنویس
ایمیلها بهعنوان پیشنویس ذخیره میشوند زمانی که کاربری شروع به ویرایش آنها کرده اما میخواهد برای تکمیل بعداً به آنها برگردد. Aspose.Email با تنظیم یک پرچم پیام، امکان ذخیرهٔ پیامهای ایمیل در وضعیت پیشنویس را فراهم میکند. در زیر نمونه کدی برای ذخیرهٔ یک پیام ایمیل Outlook (MSG) بهعنوان پیشنویس آورده شده است.