Convert email to HTML in C# .NET

HTML هو تنسيق مُستخدم على نطاق واسع وسهل الوصول إليه يمكن مشاهدته بواسطة مجموعة واسعة من المنصات، ومتصفحات الويب، بما في ذلك أجهزة الكمبيوتر المكتبية والأجهزة المحمولة. على النقيض من ذلك، قد تتطلب ملفات EML و MSG برامج أو عملاء بريد إلكتروني محددين لعرضها، مما قد يجعل من الصعب الوصول إليها وعرضها بمرور الوقت. لذلك، فإن تحويل ملفات MSG أو EML إلى HTML يجعلها أسهل في العرض، خاصة للمستلمين الذين قد لا يمتلكون عملاء بريد إلكتروني أو برامج متوافقة.

بالإضافة إلى ذلك، فإن ملفات HTML أسهل في الأرشفة وتظل في تنسيق قابل للبحث والفهرسة.

تقدم هذه المقالة خوارزمية للتحويل السريع والسهل لملفات MSG أو EML إلى تنسيق HTML باستخدام C#، بغض النظر عن الغرض الأساسي. تضمن طريقتنا الموثوقة الحفاظ الكامل على محتوى البريد الإلكتروني، بما في ذلك الصور المدمجة، دون أي فقدان. وهذا يضمن الحفاظ على سلامة البريد الإلكتروني طوال عملية التحويل.

تغطي المقالة الموضوعات التالية:

C# API لتحويل ملفات EML/MSG إلى HTML

لتحويل ملفات EML/MSG إلى HTML، سنستخدم Aspose.Email for .NET. إنها API لمعالجة البريد الإلكتروني تتيح لك التلاعب برسائل البريد الإلكتروني والعمل مع تنسيقات الملفات الخاصة بعملاء البريد الإلكتروني الشائعين مثل Thunderbird و Outlook، إلخ. يمكنك تنزيل DLL الخاصة بالـ API أو تثبيتها من NuGet باستخدام الأمر التالي:

PM> Install-Package Aspose.Email

تحويل ملفات EML/MSG إلى HTML مع حفظ الصور بشكل منفصل

ملف MSG النموذجي له العرض التالي:

عرض ملف MSG

باستخدام API الخاصة بنا، يمكنك تعيين أي دليل على جهازك وحفظ ملف HTML المستهدف مع الصور في مجلد منفصل:

عرض ملف HTML

استخدم مثال الكود التالي لتحويل رسالة بريد إلكتروني بصيغة MSG أو EML إلى ملف HTML مع الصور، التي يتم حفظها في دليل مستهدف. يقوم الكود بالخطوات التالية:

  1. أولاً، يحدد مسارات المصدر والهدف لملف MSG/EML المصدر وملف HTML، بالإضافة إلى الدليل الهدف للموارد.
  2. يقوم بتحميل ملف MSG أو EML باستخدام MailMessage.Load.
  3. ينشئ كائن HtmlSaveOptions ويقوم بتعيين خاصية ResourceRenderingMode إلى SaveToFile.
  4. يعرف مفوضة لحدث SaveResourceHandler الخاص بـ HtmlSaveOptions.
  5. ينشئ دليلاً هدفًا للموارد داخل المفوضة إذا لم يكن موجودًا بالفعل.
  6. يحفظ كل مورد إلى ملف باسم ملف داخل المفوضة بناءً على نوع محتوى المورد.
  7. يستدعي Save طريقة مثيل MailMessage، مع تمرير اسم ملف HTML الهدف ومثيل HtmlSaveOptions لحفظ البريد الإلكتروني بتنسيق HTML.
// MSG or EML filename
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");
// target HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");
// target directory to save images
var resourceDir = Path.Combine(targetPath, "A Day in the Park");
// Load MSG or EML
var msg = MailMessage.Load(msgFileName);
// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile
};
htmlSaveOptions.SaveResourceHandler +=
(AttachmentBase attachment, out string resourceFileName) =>
{
if (!Directory.Exists(resourceDir))
{
Directory.CreateDirectory(resourceDir);
}
resourceFileName = Path.Combine(resourceDir, attachment.ContentType.Name);
attachment.Save(resourceFileName);
};
msg.Save(htmlFileName, htmlSaveOptions);

تحويل ملفات EML/MSG إلى HTML مع حفظ الصور داخل HTML

أحيانًا قد تفضل تحويل ملفات EML/MSG إلى HTML مع الاحتفاظ بالصور المدمجة داخل HTML.

صورة داخل HTML في محرر نصوص

توضح مقتطفات الكود التالية كيفية تحويل ملف MSG أو EML إلى تنسيق HTML في C# وحفظ الصور داخل HTML. يقوم الكود بالخطوات التالية:

  1. يعرف مسارات المصدر والهدف لملف البريد الإلكتروني وملف HTML الناتج.
  2. يقوم بتحميل ملف MSG أو EML باستخدام MailMessage.Load.
  3. ينشئ مثيل جديد من فئة HtmlSaveOptions، والتي تتيح لك تكوين كيفية حفظ البريد الإلكتروني كـ HTML.
  4. يقوم بتكوين مثيل HtmlSaveOptions لإدراج الموارد، بما في ذلك الصور، مباشرة في HTML.
  5. يستدعي Save طريقة مثيل MailMessage، مع تمرير اسم ملف HTML الهدف ومثيل HtmlSaveOptions لحفظ البريد الإلكتروني بتنسيق HTML.
// MSG or EML filename
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");
// target HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");
// Load MSG or EML
var msg = MailMessage.Load(msgFileName);
// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(htmlFileName, htmlSaveOptions);

حفظ HTML مع رأس

كخيار اختياري، يمكنك حفظ HTML مع رأس. توضح مقتطفات الكود التالية كيفية حفظ HTML مع رأس في C#:

// Create HTML save options
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml,
HtmlFormatOptions = HtmlFormatOptions.WriteHeader
};

نتيجة لذلك، سيتم إضافة رأس نصي إلى HTML المستهدف:

رأس نصي

الخاتمة

لتلخيص ذلك، من خلال هذه المقالة لقد تعلمت للتو عن سهولة تنسيق HTML للأرشفة وإدارة ملفاتك وكيفية تنفيذ التحويل من EML أو MSG في C# باستخدام مكتبة Aspose.Email for .NET. يمكنك أن ترى مدى سرعة وسهولة عملية التحويل باستخدام بضع أسطر من الكود. في حال كان لديك أي أسئلة، لا تتردد في الكتابة إلى منتدى الدعم المجاني. يمكنك أيضًا معرفة المزيد عن Aspose.Email for .NET، وميزاته ومرافقه من التوثيق.

انظر أيضًا