تحميل وحفظ رسالة البريد الإلكتروني
تحميل رسالة البريد الإلكتروني
التحميل من EML
يصف هذا القسم كيفية تحميل ملف EML إلى كائن MailMessage باستخدام الـ EmlLoadOptions فئة. توفر فئة EmlLoadOptions خيارات متعددة لتخصيص طريقة تحميل ملف EML، مثل الحفاظ على تنسيقات الرسائل المضمَّنة أو التحكم في سلوك تحميل مرفقات TNEF.
- تهيئة كائن من EmlLoadOptions.
- قم بتكوين خيارات التحميل حسب الحاجة.
- استخدم الـ 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، مع إمكانية التحكم في الترميز وإزالة التوقيع والمزيد.
- أنشئ نسخة من EmlxLoadOptions.
- قم بتكوين الخصائص حسب الحاجة.
- استخدم الـ 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 إلى MailMessage باستخدام HtmlLoadOptions فئة. تم تصميم هذه الفئة خصيصًا للتعامل مع محتوى HTML مع خيارات لإدارة الموارد وإضافة عروض نصية عادية.
- تهيئ نسخة من HtmlLoadOptions.
- قم بإعداد الخصائص اللازمة.
- استخدم الـ 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.
- أنشئ نسخة من MhtmlLoadOptions.
- قم بتكوين الخصائص المطلوبة.
- تحميل ملف 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 إلى كائن MailMessage باستخدام MsgLoadOptions فئة. توفر فئة MsgLoadOptions خصائص متعددة للتعامل مع طريقة تحميل ملفات MSG، بما في ذلك الخيارات للحفاظ على محتوى RTF أو إدارة مرفقات TNEF.
- أنشئ نسخة من MsgLoadOptions.
- حدد الخصائص المطلوبة لتخصيص عملية التحميل.
- حمّل ملف 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. - مهلة: يحدّ وقت التنسيق بالملليثانية أثناء التحويل. القيمة الافتراضية هي 3000 ملّي ثانية.
تحميل من TNEF
تعلم كيفية تحميل ملف TNEF eml باستخدام TnefLoadOptions فئة. توفر هذه الفئة خيارات لإدارة الترميز وإزالة التوقيعات أثناء عملية التحميل.
- إنشاء مثال من TnefLoadOptions.
- قم بتكوين الخصائص حسب الحاجة.
- استخدم الـ 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.
اكتشاف صيغ الملفات
توفر واجهة برمجة التطبيقات Aspose.Email القدرة على اكتشاف صيغة ملف الرسالة المقدم. الـ DetectFileFormat طريقة من FileFormatUtil يمكن استخدام الفئة لتحقيق ذلك. يمكن استخدام الفئات والأساليب التالية لاكتشاف صيغة الملف المحمَّل.
- FileFormatType فئة
- FileFormatInfo فئة
- FileFormatUtil فئة
- FileFormatUtil.DetectFileFormat(Stream) Method
- FileFormatUtil.DetectFileFormat(String) Method
يُظهر مقطع الشيفرة التالي كيفية اكتشاف صيغ الملفات.
حفظ وتحويل الرسائل
تسهل 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– يكتب عناوين البريد الإلكتروني الكاملة لأي مستلمين مرفقين (Cc) إلى ملف الإخراج.WriteCompleteBccEmailAddress– يكتب عنوان البريد الإلكتروني الكامل لأي مستلمين مخفيين (Bcc) إلى ملف الإخراج.RenderCalendarEvent– يكتب نص حدث التقويم إلى ملف الإخراج.SkipByteOrderMarkInBody– يكتب بايتات Byte Order Mark (BOM) إلى ملف الإخراج.RenderVCardInfo– يكتب النص من VCard AlternativeView إلى ملف الإخراج.DisplayAsOutlook– يعرض رأس From.RenderTaskFields– يكتب حقول مهمة محددة إلى ملف الإخراج.None– لم يتم تحديد إعداد.
يُظهر مقطع الشيفرة التالي كيفية تحويل ملفات EML إلى MHTML مع إعدادات اختيارية.
عرض أحداث التقويم
الـ MhtFormatOptions.RenderCalendarEvent يعرض أحداث التقويم إلى مخرجات MTHML. يوضح المقتطف البرمجي التالي كيفية عرض أحداث التقويم أثناء التحويل إلى MHTML.
تصدير البريد إلى MHTML دون الصور المدمجة
تصدير البريد الإلكتروني إلى MHT مع توقيت مخصص
MailMessage class يوفر الـ 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، حيث يلتزم بصيغة واجهة برمجة تطبيقات الرسائل (MAPI). يضمن ذلك أن الرسائل المحوَّلة إلى ملفات MSG تكون متوافقة بالكامل مع منتجات Microsoft، مما يسمح بفتحها وتعديلها وإدارتها مباشرةً داخل Outlook.
يكون هذا التحويل ضروريًا أيضًا عندما تحتاج الرسائل الإلكترونية إلى الأرشفة أو الفهرسة أو المعالجة بواسطة تخزينات تتطلب صيغة MAPI، مثل تخزينات PST/OST، OLM. الـ MapiConversionOptions تتيح لك الفئة تحديد خيارات إضافية، مثل الحفاظ على تنسيق الرسالة الأصلي، والاحتفاظ بالتواريخ الأصلية، وضغط جسم RTF أثناء التحويل. يُظهر المثال البرمجي التالي كيفية تحميل بريد إلكتروني من ملف بصيغة .eml وتحويله إلى صيغة Outlook .msg مع إمكانية التخصيص مع ضمان الحفاظ على بعض خصائص البريد الأصلي أثناء التحويل.
- إنشاء نسخة من
MapiConversionOptionsوتكوين خصائصه. - تحويل الـ
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
-
ASCIIFormat: تُرجِع
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: يفعّل ضغط جسم RTF إذا تم تعيينه إلى true. يمكن أن يساعد ذلك في تقليل حجم ملف MSG، خصوصًا عند التعامل مع رسائل كبيرة ذات تنسيق غني.