
HTML เป็นรูปแบบที่ใช้กันอย่างแพร่หลายและเข้าถึงได้ง่ายซึ่งสามารถดูได้จากแพลตฟอร์มที่หลากหลาย รวมถึงเว็บเบราว์เซอร์และอุปกรณ์เคลื่อนที่ ในทางกลับกัน ไฟล์ EML และ MSG อาจต้องการซอฟต์แวร์หรือไคลเอนต์อีเมลเฉพาะเพื่อให้สามารถดูได้ ซึ่งอาจทำให้เข้าถึงและดูได้ยากขึ้นเมื่อเวลาผ่านไป ดังนั้นการแปลงไฟล์ MSG หรือ EML เป็น HTML ทำให้ดูง่ายขึ้น โดยเฉพาะสำหรับผู้รับที่อาจไม่มีไคลเอนต์อีเมลหรือซอฟต์แวร์ที่เข้ากันได้
นอกจากนี้ ไฟล์ HTML ยังง่ายต่อการเก็บถาวรและยังคงอยู่ในรูปแบบที่สามารถค้นหาและจัดทำดัชนีได้
บทความนี้นำเสนอ อัลกอริธึมสำหรับการแปลงไฟล์ MSG หรือ EML เป็นรูปแบบ HTML อย่างรวดเร็วและง่ายดายโดยใช้ C# โดยไม่คำนึงถึงวัตถุประสงค์พื้นฐาน. วิธีการที่เชื่อถือได้ของเรารับประกันว่าคอนเทนต์ของอีเมล รวมถึงภาพฝังตัว จะถูกเก็บรักษาไว้อย่างสมบูรณ์โดยไม่มีการสูญเสียใดๆ ซึ่งช่วยให้ความสมบูรณ์ของอีเมลได้รับการรักษาไว้ตลอดกระบวนการแปลง
บทความนี้ครอบคลุมหัวข้อต่อไปนี้:
- C# API เพื่อแปลงไฟล์ EML/MSG เป็น HTML
- แปลงไฟล์ EML/MSG เป็น HTML โดยบันทึกภาพแยกต่างหาก
- แปลงไฟล์ EML/MSG เป็น HTML โดยบันทึกภาพภายใน HTML
- บันทึก HTML พร้อมหัวข้อ
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 ทั่วไปมีลักษณะดังนี้:

ด้วย API ของเรา คุณสามารถตั้งค่าตำแหน่งใดก็ได้บนอุปกรณ์ของคุณและบันทึกไฟล์ HTML เป้าหมายพร้อมภาพในโฟลเดอร์แยกต่างหาก:

ใช้ตัวอย่างโค้ดต่อไปนี้เพื่อแปลงข้อความอีเมลในรูปแบบ MSG หรือ EML เป็นไฟล์ HTML ที่มีภาพซึ่งถูกบันทึกไปยังไดเรกทอรีเป้าหมาย โค้ดจะดำเนินการตามขั้นตอนต่อไปนี้:
- กำหนดพาธต้นทางและพาธเป้าหมายสำหรับไฟล์ MSG/EML และไฟล์ HTML ตามลำดับ รวมถึงไดเรกทอรีเป้าหมายสำหรับทรัพยากร
- โหลดไฟล์ MSG หรือ EML โดยใช้วิธีการ MailMessage.Load
- สร้างอ็อบเจ็กต์ HtmlSaveOptions และตั้งค่าพร็อพเพอร์ตี้ ResourceRenderingMode เป็น SaveToFile
- กำหนดตัวแทนสำหรับเหตุการณ์ SaveResourceHandler ของ HtmlSaveOptions
- สร้างไดเรกทอรีเป้าหมายสำหรับทรัพยากรภายในตัวแทนหากยังไม่มีอยู่
- บันทึกทรัพยากรแต่ละรายการไปยังไฟล์โดยใช้ชื่อไฟล์ภายในตัวแทนตามประเภทเนื้อหาของทรัพยากร
- เรียกใช้วิธี 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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแปลงไฟล์ MSG หรือ EML เป็นรูปแบบ HTML ใน C# และบันทึกภาพภายใน HTML โค้ดจะดำเนินการตามขั้นตอนต่อไปนี้:
- กำหนดพาธต้นทางและพาธเป้าหมายสำหรับไฟล์อีเมลและผลลัพธ์ HTML
- โหลดไฟล์ MSG หรือ EML โดยใช้วิธีการ MailMessage.Load
- สร้างอินสแตนซ์ใหม่ของคลาส HtmlSaveOptions ซึ่งช่วยให้คุณกำหนดวิธีการบันทึกอีเมลเป็น HTML
- กำหนดค่าอินสแตนซ์ HtmlSaveOptions เพื่อฝังทรัพยากรรวมถึงภาพโดยตรงใน HTML
- เรียกใช้วิธี 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 คุณลักษณะและสิ่งอำนวยความสะดวกจาก เอกสารของเรา.