ดึงเนื้อหาข้อความอีเมลใน C#
แสดงข้อมูลอีเมล
นี้ MailMessage เป็นตัวแทนของข้อความอีเมลและอนุญาตให้ผู้พัฒนาถึงคุณสมบัติของข้อความอีเมล ข้อมูลส่วนหัว (ได้อธิบายใน การดึงส่วนหัวอีเมล) สามารถดึงและจัดการได้หลายวิธี บทความนี้อธิบายวิธีแสดงส่วนหัวอีเมลที่เลือกและเนื้อหาอีเมลบนหน้าจอ เพื่อแสดงข้อมูลอีเมลบนหน้าจอ ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- โหลดข้อความอีเมลเข้าสู่ MailMessage อินสแตนซ์
- แสดงเนื้อหาอีเมลบนหน้าจอ.
โค้ดตัวอย่างต่อไปนี้แสดงวิธีแสดงข้อมูลอีเมลบนหน้าจอ
// Create MailMessage instance by loading an Eml file
var message = MailMessage.Load("test.eml", new EmlLoadOptions());
// Gets the sender info, recipient info, Subject, htmlbody and textbody
Console.Write("From:");
Console.WriteLine(message.From);
Console.Write("To:");
Console.WriteLine(message.To);
Console.Write("Subject:");
Console.WriteLine(message.Subject);
Console.WriteLine("HtmlBody:");
Console.WriteLine(message.HtmlBody);
Console.WriteLine("TextBody");
Console.WriteLine(message.Body);
ดึงส่วนหัวอีเมล
ส่วนหัวของอีเมลแสดงถึงชุดฟิลด์ส่วนหัวมาตรฐานตามอินเทอร์เน็ตและ RFC ที่รวมอยู่ในข้อความอีเมล อินเทอร์เน็ตส่วนหัวของอีเมลสามารถกำหนดได้โดยใช้ MailMessage คลาส ชนิดส่วนหัวทั่วไปถูกกำหนดใน HeaderType คลาสนี้เป็นคลาสที่ sealed ทำงานเหมือนการ enum ปกติ เพื่อดึงส่วนหัวจากอีเมล ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- โหลดข้อความอีเมลในอินสแตนซ์ของ MailMessage คลาส.
- หลังจากโหลดข้อความอีเมลแล้ว เราจะได้เนื้อหาดิบของมัน
นี้ MailMessage class เองมีคุณสมบัติต่าง ๆ เช่น From, To, Cc, Subject เป็นต้น คุณสมบัติเหล่านี้สามารถดึงจากส่วนหัวได้
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการดึงส่วนหัวของอีเมล.
รับค่าหัวข้อที่ถอดรหัสแล้ว
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการรับค่าที่ถอดรหัสของส่วนหัว
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage mailMessage = MailMessage.Load(dataDir + "emlWithHeaders.eml");
string decodedValue = mailMessage.Headers.GetDecodedValue("Thread-Topic");
Console.WriteLine(decodedValue);
ดึงเนื้อหาอีเมล
รับเนื้อหาเป็นข้อความธรรมดา
นี้ Body คุณสมบัติคืนค่าการแสดงข้อความเป็นข้อความธรรมดาของส่วนเนื้อหา
string plainTextBody = mailMessage.Body;
หมายเหตุ: หากส่วน MIME text/plain ปรากฏในข้อความ คุณสมบัติจะแสดงข้อมูลข้อความนั้น มิฉะนั้นจะคืนค่าข้อความที่แยกออกจาก HtmlBody คุณสมบัติโดยไม่มีมาร์คอัป html
ดึงเนื้อหา HTML เป็นข้อความธรรมดา
นี้ MailMessage คลาสนี้มีคุณสมบัติในการดึงส่วนเนื้อหา HTML ของข้อความเป็นข้อความธรรมดา MailMessage คลาสให้ GetHtmlBodyText เมธอดที่คืนค่าตัวเนื้อหา HTML ในรูปแบบข้อความธรรมดา เมธอดนี้ทำการพาร์ส HtmlBody คุณสมบัติและคืนค่าข้อความธรรมดาที่แยกออกโดยละเว้นมาร์คอัป html GetHtmlBodyText เมธอดรับพารามิเตอร์แบบบูลีนที่บ่งชี้ว่าตัวข้อความควรมี URL หรือไม่ การส่งค่า true หมายความว่าตัวเนื้อหา HTML ควรมี URL
ตัวอย่างโค้ดต่อไปนี้สาธิตการใช้ GetHtmlBodyText เมธอดเพื่อดึงส่วนเนื้อหา HTML ของอีเมลเป็นข้อความธรรมดา
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();
MailMessage mail = MailMessage.Load(dataDir + "HtmlWithUrlSample.eml");
string body_with_url = mail.GetHtmlBodyText(true);// body will contain URL
string body_without_url = mail.GetHtmlBodyText(false);// body will not contain URL
Console.WriteLine("Body with URL: " + body_with_url);
Console.WriteLine("Body without URL: " + body_without_url);
เข้าถึงที่อยู่ X.500 ของ Exchange
นี้ MailAddress คลาสมี X500Address คุณสมบัติที่สร้างขึ้นเพื่อเปิดเผยที่อยู่ X.500 ของ Exchange หากปรากฏในข้อความ ให้การเข้าถึงแบบอ่านอย่างเดียวต่อสตริงที่อยู่ X.500 (Exchange) สำหรับ MailAddress อินสแตนซ์และคืนค่าแอดเดรส X.500 หากรวมอยู่ในเมตาดาต้าข้อความ มิฉะนั้นคืนค่า null หรือว่าง ไม่ต้องทำการพาร์เซ — คุณสมบัตินี้คืนสตริง X.500 ดิบ
var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;