แปลงอีเมลเป็น HTML ใน 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 คุณลักษณะและสิ่งอำนวยความสะดวกจาก เอกสารของเรา.

ดูเพิ่มเติม