إنشاء وحفظ ملفات Outlook

يدعم Aspose.Email إنشاء ملفات رسائل Outlook (MSG). يشرح هذا المقال كيفية:

إنشاء وحفظ رسائل Outlook

الـ MailMessage الفئة لديها الـ Save() طريقة يمكنها حفظ ملفات Outlook MSG إلى القرص أو التدفق. مقتطفات الكود أدناه تنشئ مثيلًا من MailMessage فئة، اضبط خصائص مثل from, to, subject و body. الـ Save() الطريقة تستقبل اسم الملف كمعامل. بالإضافة إلى ذلك، يمكن إنشاء رسائل Outlook مع جسم RTF مضغوط باستخدام الـ MapiConversionOptions

  1. إنشاء مثيل جديد من MailMessage الفئة وتضبط خصائص From, To, Subject و Body.
  2. استدعِ الـ MapiMessage فئة FromMailMessage طريقة تقبل كائن من MailMessage نوع. الـ FromMailMessage طريقة تحول الـ MailMessage إلى MapiMessage (MSG).
  3. استدعِ الـ MapiMessage.Save() طريقة لحفظ ملف MSG.

اكتب الشيفرة التالية في حدث النقر لزر التحكم في تطبيق Windows.

إنشاء ملفات MSG مع مرفقات

في المثال أعلاه، أنشأنا ملف MSG بسيط. يدعم Aspose.Email أيضًا حفظ ملفات الرسائل مع المرفقات. كل ما عليك هو إضافة المرفقات إلى MailMessage مثال. أضف مرفقات عن طريق استدعاء طريقة Add() على MailMessage.Attachments المجموعة. أضف ListBox إلى النموذج الذي تم إنشاؤه أعلاه وأضف زرّين، أحدهما لإضافة المرفقات والآخر لإزالة المرفقات. يعمل التطبيق الذي يضيف المرفقات بهذه الطريقة:

  1. عند النقر على زر Add Attachment، يُعرض Open File Dialog لمساعدة المستخدمين في تصفح وتحديد المرفق.
  2. عند اختيار ملف، يُضاف المسار الكامل إلى القائمة.
  3. عند إنشاء ملف MSG، يتم التقاط مسارات المرفقات من القائمة وإضافتها إلى MailMessage.Attachments مجموعة.

اكتب الشيفرة التالية في حدث النقر على زر Add Attachment.

عند النقر على زر Remove Attachment، قم بإزالة العناصر المحددة من ListBox. اكتب الشيفرة التالية في حدث النقر على زر Remove Attachment.

أضف الشيفرة لإضافة المرفقات إلى MailMessage مثال. الكود النهائي لدالة Write Msg مكتوب كما هو أدناه.

إنشاء ملفات MSG بجسم RTF

يمكنك أيضًا إنشاء ملفات رسالة Outlook (MSG) بأجسام نص غني (RTF) باستخدام Aspose.Email. يدعم جسم RTF تنسيق النص. أنشئ واحدًا عن طريق تعيين الـ MailMessage.HtmlBody خاصية. عندما تقوم بتحويل MailMessage مثال إلى MapiMessage في هذه الحالة، يتم تحويل جسم HTML إلى RTF. بهذه الطريقة يتم الحفاظ على تنسيق جسم البريد الإلكتروني.

المثال التالي ينشئ ملف MSG يحتوي على جسم RTF. يوجد عنوان واحد، وتطبيق تنسيق النص العريض وتحت الخط في جسم HTML. يتم الاحتفاظ بهذا التنسيق عند تحويل HTML إلى RTF.

ضغط RTF لجسم رسالة MAPI

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

يهدف ضغط RTF إلى تقليل حجم الرسالة وكذلك ملفات PST (جدول التخزين الشخصي) الناتجة التي يستخدمها Microsoft Outlook لتخزين رسائل البريد الإلكتروني والبيانات الأخرى. باستخدام ضغط RTF عند تكوين جسم الرسالة، يمكن للمطورين تقليل مقدار الذاكرة المطلوبة لتخزين رسائل البريد الإلكتروني أو تحسين عرض النطاق الترددي للشبكة عند نقل الرسائل.

لهذا الغرض، تم تصميم طريقتين محملتين بالتحمل الزائد:

  • MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): تسمح لك هذه الطريقة بتعيين محتوى جسم الرسالة باستخدام السلسلة المحددة وتحديد نوع محتوى الجسم (مثلاً نص عادي، HTML، إلخ). المعلمة الاختيارية compression هي قيمة تحدد ما إذا كان يجب ضغط المحتوى باستخدام ضغط RTF. إذا كانت معلمة compression صحيحة، سيُضغط المحتوى، مما يؤدي إلى حجم رسالة أصغر.

  • MapiMessageItemBase.SetBodyRtf(string content, bool compression): تقوم هذه الطريقة بتعيين محتوى جسم الرسالة بتنسيق RTF. معلمة content هي سلسلة تمثل محتوى RTF الذي سيُعيّن كجسم الرسالة. كما في الطريقة السابقة، تحدد معلمة compression ما إذا كان يجب تطبيق ضغط RTF على المحتوى. إذا كان compression صحيحًا، سيتم ضغط محتوى 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) كمسودة.