1. บทนำ
GroupDocs.Viewer for .NET library ให้คุณนำเข้าอีเมลในรูปแบบใดก็ได้ที่เป็นที่นิยม, แปลงเป็น HTML, PNG, JPEG, และ PDF, และยังสามารถสกัดคุณสมบัติพื้นฐานของอีเมลโดยไม่ต้องทำการแปลงจริง
โดยจริง ๆ แล้วเมื่อทำงานกับอีเมลใน GroupDocs.Viewer ผู้ใช้ควรรับรู้เกี่ยวกับสองประเภทที่เฉพาะเจาะจงสำหรับอีเมล:
- คลาส
Options.EmailOptions– ใช้ควบคุมวิธีการแปลงข้อความ (ขนาดหน้า, รูปแบบวันที่, ฟิลด์ ฯลฯ) Results.MailMessageViewInfo— ถูกสร้างโดย GroupDocs.Viewer หลังจากเรียกเมธอดGetViewInfo()และเก็บเมตาดาต้าเกี่ยวกับอีเมลที่โหลด
ด้านล่างเป็นคำแนะนำสั้น ๆ ที่แสดงวิธีการแปลงอีเมลและดึงเมตาดาต้าของมัน
2. โหลดอีเมลและแปลงเป็นรูปแบบผลลัพธ์ทั้งหมด
ตัวอย่างโค้ดสั้น ๆ ด้านล่างแสดงการโหลดไฟล์อีเมลอินพุต “sample.eml” ไปยังอินสแตนซ์ของคลาส Viewer แล้วแปลงเป็นรูปแบบผลลัพธ์ 4 แบบที่รองรับ: HTML, PDF, PNG, และ JPEG ตามลำดับ โดยเริ่มต้นจะสร้างอ็อบเจ็กต์ของตัวเลือกการมองเห็นทั้ง 4 ตัว, จากนั้นโหลด “sample.eml” ไปยังอินสแตนซ์ Viewer ด้วยเส้นทางไฟล์, แล้วเรียกเมธอด Viewer.View() สี่ครั้ง
using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
HtmlViewOptions htmlOptions = HtmlViewOptions.ForEmbeddedResources("html-page{0}.html");
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
using (Viewer viewer = new Viewer("sample.eml"))
{
viewer.View(htmlOptions);
viewer.View(pdfOptions);
viewer.View(pngOptions);
viewer.View(jpegOptions);
}
3. ปรับแต่งตัวเลือกอีเมลสำหรับการแปลง
ตัวอย่างข้างต้นแสดงการแปลงโดยที่ตัวเลือกทั้งหมดตั้งค่าเป็นค่าเริ่มต้น อย่างไรก็ตาม มีคลาส EmailOptions ซึ่งสามารถเข้าถึงได้จากตัวเลือกการมองเห็นทั้ง 4 (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) ผ่านคุณสมบัติ EmailOptions ไม่จำเป็นต้องสร้างอินสแตนซ์ของ EmailOptions ด้วยตนเองและกำหนดให้กับตัวเลือกการมองเห็น — ทั้งหมดนี้ทำให้โดยอัตโนมัติแล้ว ผู้ใช้เพียงแค่ปรับค่าคุณสมบัติตามต้องการ
มีหลายคุณสมบัติในคลาส EmailOptions ซึ่งอธิบายด้านล่าง
3.1. ขนาดหน้า
ควบคุมขนาดของหน้าผลลัพธ์ โดยค่าเริ่มต้นคือ Unspecified — GroupDocs.Viewer จะปรับขนาดให้เหมาะสมที่สุด สามารถตั้งค่าได้ดังนี้เป็นตัวอย่าง
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. รูปแบบวันที่และเวลาและโซนเวลา
อีเมลมักมีวันที่ “ส่ง” (Sent) ค่าคุณสมบัติ DateTimeFormat ช่วยควบคุมรูปแบบการแสดงค่าวันที่‑เวลา และ TimeZoneOffset ช่วยปรับการชดเชยเวลาให้เป็นบวกหรือเป็นลบ ตัวอย่างด้านล่าง
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // รูปแบบที่กำหนดเองอย่างเต็มที่
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // เลื่อนเวลาให้เร็วขึ้น 5 ชั่วโมง
หากคุณปล่อยให้ DateTimeFormat เป็น null หรือสตริงว่าง GroupDocs.Viewer จะใช้รูปแบบของระบบปัจจุบัน
3.3. การปรับแต่งฟิลด์
ข้อความอีเมลประกอบด้วยเนื้อหาและฟิลด์ต่าง ๆ เช่น หัวเรื่อง, วันที่‑เวลา ส่ง, ผู้ส่ง เป็นต้น GroupDocs.Viewer อนุญาตให้ผู้ใช้แทนที่ป้ายชื่อของฟิลด์เหล่านี้ผ่านคุณสมบัติ FieldTextMap ซึ่งแมปค่า enum Field (เช่น Field.Subject) ไปยังข้อความที่จะแสดงในผลลัพธ์ ผู้ใช้จึงสามารถเปลี่ยนหรือเพิ่มรายการใหม่ได้ดังนี้
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
pngOptions.EmailOptions.FieldTextMap[Field.Subject] = "Email Subject";
pngOptions.EmailOptions.FieldTextMap[Field.Sent] = "Mail was sent at";
pngOptions.EmailOptions.FieldTextMap[Field.From] = "Sender";
4. โหลดอีเมลและดึงข้อมูลการมองเห็น
คุณสามารถดึงค่าฟิลด์บางส่วนของอีเมลโดยไม่ต้องทำการแปลงอีเมลเองได้ โดยให้โหลดเอกสารอีเมลไปยังอินสแตนซ์ Viewer แล้วใช้เมธอด Viewer.GetViewInfo() ตามตัวอย่างด้านล่าง
using System;
using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
using GroupDocs.Viewer.Results;
// ...
using (Viewer viewer = new Viewer("sample.eml"))
{
ViewInfo generalInfo = viewer.GetViewInfo(ViewInfoOptions.ForHtmlView());
// การแคสต์อย่างชัดเจน
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// แปลงเป็นรูปแบบผลลัพธ์ใดก็ได้หากต้องการ
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
จะเห็นว่าเมธอด Viewer.GetViewInfo() คืนค่าอินสแตนซ์ของคลาสทั่วไป ViewInfo ซึ่งต่อมาถูกแคสต์เป็นคลาส MailMessageViewInfo ในขณะนี้รองรับเพียงฟิลด์ From, Subject, และ Sent เท่านั้น
| คุณสมบัติ | ประเภท | ความหมาย |
|---|---|---|
Sent |
DateTime |
เวลาแน่นอนที่อีเมลถูกส่ง |
Subject |
string |
ข้อความที่ปรากฏในหัวเรื่องของอีเมล |
From |
string |
ที่อยู่อีเมลของผู้ส่งในรูปแบบสตริงธรรมดา |
คุณสมบัติทั้งสามเป็นแบบอ่าน‑อย่างเดียว (read‑only)
5. สรุป
- สร้างอินสแตนซ์
Viewerและระบุไฟล์อีเมลอินพุตให้กับคอนสตรัคเตอร์โดยใช้เส้นทางหรือสตรีม - เรียกเมธอด
Viewer.GetViewInfoแล้วแคสต์ผลลัพธ์เป็นประเภทMailMessageViewInfoเพื่อดึงเมตาดาต้า: ฟิลด์Sent,Subject, และFrom - ใช้
EmailOptionsเพื่อเปลี่ยนขนาดหน้า, รูปแบบวันที่, การชดเชยโซนเวลา, หรือข้อความป้ายชื่อของฟิลด์ใด ๆ แล้วเรียกเมธอดViewer.View()
ขั้นตอนเหล่านี้จะให้คุณเข้าถึงคุณสมบัติหลักของอีเมลและควบคุมวิธีการแสดงผลของข้อความเมื่อทำการแปลง ไม่ต้องใช้ไลบรารีเพิ่มเติมหรือโค้ดซับซ้อน
ดูเพิ่มเติม
ดาวน์โหลดรุ่นทดลองฟรี
คุณสามารถดาวน์โหลดรุ่นทดลองฟรีของ GroupDocs.Viewer for .NET ได้จาก releases.groupdocs.com. คุณยังสามารถรับใบอนุญาตชั่วคราวเพื่อทดลองใช้คุณสมบัติและฟังก์ชันทั้งหมดโดยไม่มีข้อจำกัดจาก here.