แปลง EML เป็น HTML
แปลง EML เป็น HTML
การรวมเนื้อหาอีเมลเข้าสู่แอปพลิเคชันเว็บ การแปลง EML เป็น HTML เป็นตัวเลือกที่เหมาะสม ช่วยให้การนำเสนออีเมลดูสวยงามและน่าดึงดูด
เพื่อแปลง EML เป็น HTML คุณจะต้องใช้คลาสต่อไปนี้:
- MailMessage คลาสนี้ใช้เพื่อสร้างอ็อบเจกต์ที่แสดงข้อความอีเมล มันอนุญาตให้เข้าถึงคุณสมบัติของข้อความ เช่น หัวเรื่อง, เนื้อหา, ผู้ส่งและที่อยู่ผู้รับ เป็นต้น ด้วยเมธอดของมัน คุณสามารถสร้าง, โหลดและวิเคราะห์, แก้ไข, บันทึกอีเมล หรือทำการจัดการอื่นๆ กับพวกมันได้
- SaveOptions คลาสนี้ให้ตัวเลือกสำหรับบันทึกข้อความอีเมลในรูปแบบต่างๆ มันเปิดให้ผู้ใช้ปรับแต่งวิธีการบันทึกข้อความอีเมลในแต่ละรูปแบบ ด้วยคลาสนี้ ผู้ใช้สามารถระบุตัวเลือกสำหรับบันทึกไฟล์แนบ, ส่วนหัว, เมทาดาทา, และคุณสมบัติของข้อความอีเมล, ตั้งค่าการเข้ารหัส หรือเลือกว่าจะบันทึกข้อความพร้อมการเข้ารหัสหรือไม่
ในตัวอย่างโค้ดด้านล่างคลาสเหล่านี้ทำงานร่วมกันเพื่อโหลดไฟล์ EML ที่มีอยู่และระบุรูปแบบของข้อความเป็น EML จากนั้นพวกมันบันทึกข้อความอีเมลที่โหลดเป็นไฟล์ HTML ด้วยตัวเลือกการบันทึก HTML เริ่มต้นที่ระบุไว้:
- ใช้ MailMessage.Load() เมธอดเพื่อโหลดไฟล์ที่มีอยู่เข้าสู่อ็อบเจกต์ MailMessage โดยระบุรูปแบบข้อความ.
- บันทึกอ็อบเจกต์ 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 พร้อมเส้นทางไปยังไฟล์นั้น:
- โหลดข้อความอีเมลจากไฟล์ต้นฉบับโดยใช้ MapiMessage.Load เมธอด.
- สร้างอินสแตนซ์ของ HtmlSaveOptions พร้อมตัวเลือกการเรนเดอร์และทรัพยากรที่ระบุ.
- บันทึกข้อความอีเมลที่โหลดเป็นไฟล์ 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:
- โหลดข้อความอีเมลจากไฟล์ต้นฉบับโดยใช้ MapiMessage.Load เมธอด.
- สร้างใหม่ HtmlSaveOptions อ็อบเจกต์และตั้งค่าคุณสมบัติ ResourceRenderingMode เป็น EmbedIntoHtml.
- บันทึกข้อความอีเมลที่โหลดเป็นไฟล์ 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);
}