แปลง EML เป็น HTML

แปลง EML เป็น HTML

การรวมเนื้อหาอีเมลเข้าสู่แอปพลิเคชันเว็บ การแปลง EML เป็น HTML เป็นตัวเลือกที่เหมาะสม ช่วยให้การนำเสนออีเมลดูสวยงามและน่าดึงดูด

เพื่อแปลง EML เป็น HTML คุณจะต้องใช้คลาสต่อไปนี้:

  • MailMessage คลาสนี้ใช้เพื่อสร้างอ็อบเจกต์ที่แสดงข้อความอีเมล มันอนุญาตให้เข้าถึงคุณสมบัติของข้อความ เช่น หัวเรื่อง, เนื้อหา, ผู้ส่งและที่อยู่ผู้รับ เป็นต้น ด้วยเมธอดของมัน คุณสามารถสร้าง, โหลดและวิเคราะห์, แก้ไข, บันทึกอีเมล หรือทำการจัดการอื่นๆ กับพวกมันได้
  • SaveOptions คลาสนี้ให้ตัวเลือกสำหรับบันทึกข้อความอีเมลในรูปแบบต่างๆ มันเปิดให้ผู้ใช้ปรับแต่งวิธีการบันทึกข้อความอีเมลในแต่ละรูปแบบ ด้วยคลาสนี้ ผู้ใช้สามารถระบุตัวเลือกสำหรับบันทึกไฟล์แนบ, ส่วนหัว, เมทาดาทา, และคุณสมบัติของข้อความอีเมล, ตั้งค่าการเข้ารหัส หรือเลือกว่าจะบันทึกข้อความพร้อมการเข้ารหัสหรือไม่

ในตัวอย่างโค้ดด้านล่างคลาสเหล่านี้ทำงานร่วมกันเพื่อโหลดไฟล์ EML ที่มีอยู่และระบุรูปแบบของข้อความเป็น EML จากนั้นพวกมันบันทึกข้อความอีเมลที่โหลดเป็นไฟล์ HTML ด้วยตัวเลือกการบันทึก HTML เริ่มต้นที่ระบุไว้:

  1. ใช้ MailMessage.Load() เมธอดเพื่อโหลดไฟล์ที่มีอยู่เข้าสู่อ็อบเจกต์ MailMessage โดยระบุรูปแบบข้อความ.
  2. บันทึกอ็อบเจกต์ MailMessage ที่โหลดเป็นไฟล์ HTML โดยใช้ บันทึก เมธอด. ใช้ 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 enumeration ที่อนุญาตให้นักพัฒนาจัดการทรัพยากรในไฟล์ HTML ในตัวอย่างโค้ดด้านล่าง enum นี้ใช้เพื่อบันทึกทรัพยากรลงไฟล์และแทรกแท็ก ‘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 enumeration:

  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 และเพิ่มอีเมลไปยังโฟลเดอร์ Inbox ที่สร้างขึ้นในไฟล์เก็บข้อมูลโดยใช้ 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);
}