تحويل EML إلى HTML

تحويل EML إلى HTML

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

لتحويل EML إلى HTML، ستحتاج إلى الفئات التالية:

  • MailMessage تُستخدم الفئة لإنشاء كائن يمثل رسالة بريد إلكتروني. تتيح الوصول إلى خصائص الرسالة مثل الموضوع، المحتوى، المرسل وعناوين المستلمين، إلخ. باستخدام طرقها، يمكنك إنشاء، تحميل وتحليل، تعديل، حفظ الرسائل، أو القيام بتغييرات أخرى عليها.
  • SaveOptions توفر الفئة خيارات لحفظ رسائل البريد الإلكتروني بصيغ متعددة. تمكّن المستخدمين من تخصيص طريقة حفظ رسائل البريد الإلكتروني بصيغ مختلفة. باستخدام هذه الفئة، يمكن للمستخدمين تحديد خيارات لحفظ المرفقات، الرؤوس، البيانات الوصفية، وخصائص رسائل البريد الإلكتروني، وضبط خيارات الترميز أو اختيار ما إذا كان سيتم حفظ الرسائل بالتشفير أم لا.

في المثال البرمجي أدناه، تعمل هذه الفئات معًا لتحميل ملف EML موجود وتحديد تنسيق الرسالة كـ EML. بعد ذلك، تقوم بحفظ رسالة البريد الإلكتروني المحملة كملف HTML باستخدام خيارات الحفظ HTML الافتراضية المحددة:

  1. استخدم الـ MailMessage.Load() طريقة لتحميل الملف الموجود إلى كائن MailMessage مع تحديد تنسيق الرسالة.
  2. احفظ كائن MailMessage المحمل كملف HTML باستخدام save طريقة. استخدم SaveOptions.DefaultHtml() لتحديد خيارات الحفظ لتنسيق HTML.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);

حفظ موارد EML في ملف منفصل

توفر Aspose.Email الـ ResourceRenderingMode تعداد يسمح للمطورين بالتعامل مع الموارد في ملف HTML. في المثال البرمجي أدناه، يُستخدم هذا التعداد لحفظ الموارد إلى ملف وإدراج علامة ‘src’ في HTML مع المسار إلى هذا الملف:

  1. حمّل رسالة البريد الإلكتروني من الملف المصدر باستخدام MapiMessage.Load طريقة.
  2. إنشاء نسخة من HtmlSaveOptions مع خيارات العرض والموارد المحددة.
  3. احفظ رسالة البريد الإلكتروني المحملة كملف HTML إلى الموقع المستهدف باستخدام حفظ طريقة مع معامل HtmlSaveOptions.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

تضمين الموارد في ملف HTML

في بعض الحالات، يُطلب تضمين الموارد، مثل الصور، مباشرة في ملف HTML لتوزيع وعرض سلس. مع Aspose.Email for .NET، يمكنك بسهولة تحقيق ذلك باستخدام ResourceRenderingMode تعداد:

  1. حمّل رسالة البريد الإلكتروني من الملف المصدر باستخدام MapiMessage.Load طريقة.
  2. إنشاء جديد HtmlSaveOptions الكائن وتعيين الخاصية ResourceRenderingMode إلى EmbedIntoHtml.
  3. احفظ رسالة البريد الإلكتروني المحملة كملف HTML باستخدام حفظ طريقة، مع تحديد مسار الملف الهدف وتمرير كائن HtmlSaveOptions كمعامل لتضمين الموارد في ملف HTML.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

تحويل EML إلى ICS

يوضح المثال البرمجي التالي كيفية استخراج بيانات حدث التقويم من ملف EML وحفظها في ملف ICS منفصل للاستخدام أو التعديل اللاحق.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

تخصيص

توفر Aspose.Email for .NET أدوات لتخصيص محتوى ICS (iCalendar) المستخرج من ملفات EML (البريد الإلكتروني).

تخصيص تفاصيل الحدث

يوضح المثال البرمجي التالي كيفية تعيين تفاصيل مختلفة للموعد، مثل الملخص، الموقع، والوصف. يستخدم الكود Appointment فئة تمثل مواعيد أو أحداث التقويم بتنسيق ICS (iCalendar). توفر الفئة خصائص وطرق لإنشاء وتعديل وإدارة أحداث التقويم برمجيًا.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";

// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");

إنشاء نمط تكرار

يوضح المثال البرمجي التالي كيفية إنشاء نمط تكرار أسبوعي للموعد، حيث يحدث الموعد كل 5 أسابيع في أيام السبت. يستخدم الكود Recurrence خاصية الـ Appointment فئة تحصل أو تحدد نمط التكرار.

var pattern = new  WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);

appointment.Recurrence = pattern;

إضافة EML إلى MBOX

MBOX هو تنسيق شائع الاستخدام لتخزين رسائل بريد إلكتروني متعددة في ملف واحد، مما يجعله مناسبًا لأغراض الأرشفة والترحيل. استخدم MboxrdStorageWriter فئة لكتابة رسائل البريد الإلكتروني إلى ملف MBOX. يوضح المثال البرمجي التالي كيفية تنفيذ هذه العملية:

using (var message = MailMessage.Load("inputFile.eml")){
	using (var writer = new MboxrdStorageWriter("output.mbox", false)){
			writer.WriteMessage(message);
	}
} 

تحويل EML إلى MHTML

مع Aspose.Email for .NET، يمكنك بسهولة تحويل ملفات EML إلى تنسيق MHTML لأغراض مختلفة مثل الأرشفة، التوافق، العرض دون اتصال، إلخ. قم بتحميل رسالة البريد باستخدام MailMessage.Load، ثم استخدم MhtSaveOptions فئة كمعامل إلى MailMessage.Save طريقة لتحديد تنسيق ملف الإخراج عند حفظ الرسالة كملف منفصل:

// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);

الـ MhtSaveOptions توفر الفئة خيارات متنوعة لتخصيص ملفات MHTML الناتجة لتلبية متطلباتك الخاصة:

  • الحفاظ على تنسيق التاريخ الأصلي. يمكنك اختيار الحفاظ على تنسيق رسائل البريد الإلكتروني الأصلي أثناء عملية التحويل:

    saveOptions.PreserveOriginalDate = true;
    
  • تحديد ترميز الإخراج. يمكنك تحديد الترميز الذي سيُستخدم عند كتابة ملفات MHTML الناتجة:

    saveOptions.OutputEncoding = Encoding.UTF8; 
    
  • تضمين المرفقات. يمكن أن يكون ذلك مفيدًا إذا كنت تريد الحفاظ على المرفقات عند تحويل الرسائل إلى تنسيق MHTML:

    saveOptions.SaveAttachments = true;
    

تحويل EML إلى MSG

سواء كنت تحتاج إلى ترحيل بيانات البريد الإلكتروني، أرشفة الرسائل، أو التكامل مع Microsoft Outlook، توفر Aspose.Email حلولًا لتحقيق أهدافك. تُستخدم ملفات MSG على نطاق واسع من قبل Microsoft Outlook. للتحويل من EML إلى MSG، استخدم MailMessage.Load طريقة لتحميل ملف EML الموجود مع تحديد طريقة تحميله باستخدام EmlLoadOptions.

يوضح المثال البرمجي التالي كيفية تحويل ملفات EML إلى تنسيق MSG:

// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
} 

تحويل EML إلى OFT

لتحويل ملفات EML إلى تنسيق Outlook Template (OFT)، قم بتحميل رسالة البريد الإلكتروني الموجودة باستخدام MailMessage.Load طريقة واحفظها باستخدام MailMessage.Save مع تحديد الخيارات الافتراضية لحفظ رسالة إلى تنسيق OFT:

// load the EML file to be converted
var message = MailMessage.Load("My File.eml"); 
// save EML as a OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

إضافة EML إلى PST

لتحويل ملفات EML إلى تنسيق Personal Storage Table (PST)، قم بتحميل الرسالة باستخدام MapiMessage.Load طريقة، أنشئ ملف الإخراج باستخدام PersonalStorage.Create وإضافة البريد الإلكتروني إلى مجلد البريد الوارد الذي تم إنشاؤه في ملف التخزين باستخدام AddMessage:

using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
    using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
  {
        var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
        inbox.AddMessage(msg);
  }
}

إضافة EML إلى OST

يمكن للمطورين بسهولة تحويل ملفات EML إلى تنسيق Outlook Offline Storage Table (OST)، مما يتيح التكامل مع Microsoft Outlook. يوضح المثال البرمجي التالي كيفية إضافة رسالة EML إلى ملف OST:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Load the EML file
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Add the EML message to the OST file
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

الـ EmlLoadOptions المعامل يحدد خيارات إضافية لتحميل ملفات EML، مثل الحفاظ على صيغ الرسائل المضمنة، إزالة التوقيعات، وأكثر من ذلك.

تحويل EML إلى VCF

توفر Aspose.Email for .NET وظيفة تحويل ملفات EML إلى تنسيق vCard (VCF)، مما يسمح للمطورين باستخراج معلومات الاتصال من رسائل البريد الإلكتروني. لهذا الغرض، توفر المكتبة الـ GetAlternateViewContent طريقة الـ MailMessage فئة تمكّن المطورين من الوصول إلى العروض البديلة داخل رسائل البريد الإلكتروني واستخراج محتوى VCF المضمن داخل ملفات EML لاستخدامه لاحقًا:

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}