إدارة رسائل Outlook

حفظ الرسائل الإلكترونية كملفات HTML

تمكن Aspose.Email من حفظ موارد البريد الإلكتروني بمسارات نسبية عند تصدير الرسائل إلى صيغة HTML. توفر هذه الميزة مرونة أكبر في كيفية ربط الموارد في ملف HTML الناتج، مما يسهل مشاركة وعرض الرسائل المحفوظة على أنظمة مختلفة. لحفظ الموارد بمسارات نسبية، استخدم HtmlSaveOptions.UseRelativePathToResources الخاصية. القيمة الافتراضية للخاصية هي false (يتم حفظ الموارد بمسارات مطلقة). عند تعيينها إلى true، يتم حفظ الموارد بمسارات نسبية.

ملفات HTML ذات المسارات النسبية أكثر قابلية للنقل ويمكن عرضها بشكل صحيح بغض النظر عن هيكل ملفات بيئة الاستضافة. يمكنك الاختيار بين المسارات المطلقة والنسبية حسب المتطلبات. يمكنك تعريف مسارات مخصصة للموارد باستخدام ResourceHtmlRendering الحدث.

يوضح مثال الكود التالي كيفية حفظ بريد إلكتروني بالمسار النسبي الافتراضي للموارد:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

في هذه الحالة، سيتم حفظ الموارد في مجلد [html file name]_files، في نفس مسار ملف .html، وسيشير HTML إلى الموارد عبر مسارات نسبية.

يوضح مثال الكود أدناه كيفية الحفظ باستخدام مسار مطلق للموارد:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = false
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

كما في الحالة الأولى، سيتم حفظ الموارد في مجلد [html file name]_files بشكل افتراضي، لكن HTML سيشير إلى الموارد باستخدام مسارات مطلقة.

باستخدام الـ ResourceHtmlRendering الحدث، يمكنك تعيين مسارات مخصصة نسبية أو مطلقة للموارد. عند تخصيص المسارات باستخدام الـ ResourceHtmlRendering معالج الحدث، وبما أن UseRelativePathToResources عند ضبطها على true، يجب عليك تعيين مسار نسبي إلى الـ PathToResourceFile خاصية لضمان الإشارة الصحيحة.

يوضح مثال الكود التالي كيفية تخصيص المسار النسبي باستخدام حدث ResourceHtmlRendering

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
    if (o is AttachmentBase attachment)
    {
	    // Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
        args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
    }
};

msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);

تحويل MSG إلى رسائل MIME

توفر واجهة Aspose.Email القدرة على تحويل ملفات MSG إلى رسائل MIME باستخدام الـ ToMailMessage طريقة.

تعيين مهلات لتحويل الرسائل والتحميل

الميزات التالية ستمكّنك من تعيين المهلة بالملليثانية لعملية التحويل والتحميل:

ستوضح عينة الكود أدناه كيفية تعيين مهلة أثناء تحويل رسالة:

var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;

options.TimeoutReached += (object sender, EventArgs args) =>
{
    string subj = (sender as MailMessage).Subject;
	 // Set a flag indicating the timeout was reached
    isTimedOut = true;
};

var mailMessage = mapiMessage.ToMailMessage(options);

تحويل MSG إلى EML مع الحفاظ على جسم RTF

يمكن إجراء تحويل ملف MSG إلى EML مع الحفاظ على جسم RTF بطريقتين:

كلا الخاصيتين يحصلان على أو يضبطان قيمة تشير إلى ما إذا كان يجب الحفاظ على جسم rtf في MailMessage.

توضح مقاطع الكود التالية كيفية تحويل ملف MSG إلى EML والحفاظ على جسم RTF:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

معالجة ملفات قالب Outlook (.OFT)

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

  • إرسال البريد الإلكتروني باستخدام الـ SmtpClient فئة أو
  • حفظ الرسالة بصيغة MSG وإجراء مزيد من التحديثات/التحقق باستخدام Microsoft Outlook.

في العينات البرمجية أدناه، نقوم بـ:

  1. تحميل القالب باستخدام الـ MailMessage فئة.
  2. تحديث بعض الخصائص.
  3. حفظ الرسالة بصيغة MSG.

يوضح مقطع الكود التالي كيفية تحميل ملف OFT، وتحديث الرسالة، وحفظها بصيغة MSG.

حفظ ملفات MSG كقوالب

يوضح لك المقتطف البرمجي التالي كيفية حفظ ملف Outlook MSG كقالب.

تحديد نوع رسالة MAPI (OFT أو MSG)

عند تحميل كائن MapiMessage من ملف، قد تحتاج إلى تحديد ما إذا كانت الرسالة التي تم تحميلها ملف قالب أم ملف بريد إلكتروني عادي. باستخدام IsTemplate خاصية الـ MapiMessage الفئة، يمكنك من خلالها اكتشاف ما إذا كان البريد الإلكتروني قالبًا أم لا بدقة. يمكن أن تكون هذه الوظيفة ذات قيمة عند معالجة أنواع مختلفة من ملفات البريد الإلكتروني داخل التطبيقات والأنظمة.

يوضح مثال الشيفرة أدناه كيفية تحديد ما إذا كان MapiMessage هو OFT أم MSG:

var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false

var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true

حفظ MapiMessage أو MailMessage بتنسيق OFT

الـ SaveOptions الفئة تسمح لك بتحديد خيارات إضافية عند حفظ MailMessage أو MapiMessage بتنسيق معين.

يعرض عينة الشيفرة التالية كيفية حفظ رسالة بتنسيق OFT:

// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
    eml.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);

}

// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
    msg.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
}

إدارة الرسائل الموقعة رقمياً

تنفّذ Aspose.Email خوارزمية كائن البريد الإلكتروني S/MIME بالكامل. يمنح ذلك API القدرة الكاملة على الحفاظ على التوقيعات الرقمية أثناء تحويل الرسائل بين الصيغ.

الحفاظ على التوقيع أثناء تحويل EML إلى MSG

يحافظ Aspose.Email على التوقيع الرقمي عند التحويل من EML إلى MSG. يوضح المقتطف البرمجي التالي كيفية التحويل من EML إلى MSG.

تحويل رسائل S/MIME من MSG إلى EML

يحافظ Aspose.Email على التوقيع الرقمي عند التحويل من MSG إلى EML كما هو موضح في المقتطف البرمجي التالي.

التحقق من توقيعات البريد الإلكتروني الآمن

الميزات التالية متاحة للتحقق من توقيع كائنات MapiMessage.

يعرض عينة الشيفرة أدناه كيفية تنفيذ الميزات في مشروعك:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

إزالة التوقيعات من MapiMessages

لتحسين التوافق، الـ MapiMessage.RemoveSignature طريقة و MapiMessage.IsSigned تُستخدم الخاصية لإزالة التوقيع الرقمي من رسالة.

يعرض مقتطف الشيفرة التالي كيفية تنفيذ هذه الميزات في مشروعك:

var msg = MapiMessage.Load(fileName);

if (msg.IsSigned)
{
    var unsignedMsg = msg.RemoveSignature();
}

فك تشفير MapiMessages باستخدام الشهادات

إذا كان لديك رسائل MAPI مشفرة وتحتاج إلى فك تشفيرها باستخدام المفتاح الخاص المخزن في شهادة، فإن الميزات التالية في Aspose.Email يمكن أن تكون مفيدة:

  • MapiMessage.IsEncrypted - يحصل على قيمة تشير إلى ما إذا كانت الرسالة مشفرة.
  • MapiMessage.Decrypt() - يفك تشفير هذه الرسالة (تبحث الطريقة في المتاجر My للمستخدم الحالي والكمبيوتر للعثور على الشهادة والمفتاح الخاص المناسب).
  • MapiMessage.Decrypt(X509Certificate2 certificate) - يقوم بفك تشفير هذه الرسالة باستخدام الشهادة.

يوضح المقتطف البرمجي التالي كيفية التعامل مع رسائل MAPI المشفرة:

var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");

if (msg.IsEncrypted);
{
    var decryptedMsg = msg.Decrypt(privateCert);
}

تعيين فئات الألوان لملفات MSG

تُحدد فئة اللون رسالة البريد الإلكتروني لأهمية أو فئة معينة. يتيح Microsoft Outlook للمستخدمين تعيين فئات لون للتمييز بين الرسائل. للتعامل مع فئة اللون، استخدم الـ FollowUpManager. يحتوي على وظائف مثل AddCategory, RemoveCategory, ClearCategories و GetCategories.

  • AddCategory تأخذ MapiMessage وسلسلة فئة اللون، على سبيل المثال "فئة بنفسجية" أو "فئة حمراء" كوسائط.
  • RemoveCategory تأخذ MapiMessage وسلسلة فئة اللون التي يجب إزالتها من الرسالة.
  • ClearCategories يُستخدم لإزالة جميع فئات الألوان من الرسالة.
  • GetCategories يُستخدم لاسترداد جميع فئات الألوان من رسالة معينة.

المثال التالي ينفذ المهام كما هو موضح أدناه:

  1. إضافة فئة لون.
  2. إضافة فئة لون أخرى.
  3. استرجاع قائمة بجميع الفئات.
  4. إزالة جميع الفئات.

الوصول إلى معلومات المتابعة في ملفات MSG

توفر واجهة برمجة تطبيقات Aspose.Email القدرة على الوصول إلى معلومات المتابعة من رسالة مُرسلة أو مستلمة. يمكنها استرداد معلومات القراءة، وإيصال قراءة التسليم، ونتائج التصويت من ملف الرسالة.

استرجاع معلومات إيصال القراءة والتسليم

توضح لك المقتطف البرمجي التالي طريقة استرداد معلومات إيصال القراءة والتسليم.

إنشاء رسائل توجيه ورد

توفر Aspose.Email API القدرة على إنشاء وتنسيق رسائل التوجيه والرد. الـ ReplyMessageBuilder و ForwardMessageBuilder تُستخدم فئات الـ API لإنشاء رسائل الرد والتحويل على التوالي. يمكن تحديد إنشاء رسالة رد أو تحويل باستخدام أي من أوضاع OriginalMessageAdditionMode enum. يحتوي هذا التعداد على القيم التالية:

  • OriginalMessageAdditionMode.None - لا يتم تضمين الرسالة الأصلية في رسالة الرد.
  • OriginalMessageAdditionMode.Attachment - يتم تضمين الرسالة الأصلية كمرفق في رسالة الرد
  • OriginalMessageAdditionMode.Textpart - يتم تضمين الرسالة الأصلية كنص في جسم رسالة الرد

إنشاء رسائل رد

يعرض مقتطف الشيفرة التالي كيفية إنشاء رسالة رد.

إنشاء رسائل توجيه

يوضح مقتطف الكود التالي كيفية إنشاء رسالة تحويل.