Trích xuất Nội Dung Tin Nhắn Email trong C#

Hiển thị Thông Tin Email

Cái MailMessage đại diện cho một tin nhắn email và cho phép các nhà phát triển truy cập các thuộc tính của tin nhắn email. Thông tin tiêu đề (được thảo luận trong Trích xuất Tiêu đề Email) có thể được trích xuất và thao tác theo các cách khác nhau. Bài viết này giải thích cách hiển thị một số thông tin header email đã chọn và phần thân email trên màn hình. Để Hiển thị Thông Tin Email trên Màn Hình, thực hiện các bước sau:

  • Tạo một đối tượng của MailMessage lớp.
  • Tải một tin nhắn email vào MailMessage thể hiện.
  • Hiển thị nội dung email trên màn hình.

Đoạn mã dưới đây cho bạn thấy cách hiển thị thông tin email trên màn hình.


// 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);

Trích xuất Header Email

Tiêu đề email đại diện cho một tập hợp các trường tiêu đề chuẩn được định nghĩa bởi Internet và RFC được bao gồm trong các tin nhắn email trên Internet. Tiêu đề email có thể được xác định bằng MailMessage lớp. Các loại tiêu đề phổ biến được định nghĩa trong HeaderType lớp. Đây là một lớp sealed hoạt động như một enumeration bình thường. Để trích xuất các header từ một email, thực hiện các bước sau:

  1. Tạo một đối tượng của MailMessage lớp.
  2. Tải một tin nhắn email trong thể hiện của MailMessage lớp.
  3. Sau khi một tin nhắn email đã được tải, chúng ta sẽ lấy nội dung thô của nó.

Cái MailMessage class tự nó chứa các thuộc tính như From, To, Cc, Subject và các thuộc tính khác. Các thuộc tính này có thể được trích xuất từ tiêu đề.

Đoạn mã sau đây cho bạn thấy cách trích xuất tiêu đề email.

Lấy Các Giá Trị Header Đã Giải Mã

Đoạn mã dưới đây cho bạn thấy cách lấy các giá trị tiêu đề đã giải mã.

// 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);

Trích xuất Phần Thân Email

Lấy Phần Thân Văn Bản Thuần

Cái Nội dung thuộc tính trả về biểu diễn văn bản thuần của phần thân tin nhắn.

string plainTextBody = mailMessage.Body;

Lưu ý: Nếu phần MIME text/plain có mặt trong một tin nhắn, thuộc tính sẽ trả về dữ liệu văn bản của nó. Nếu không, nó sẽ trả về nội dung văn bản tách riêng từ HtmlBody thuộc tính không có markup HTML.

Lấy Phần Thân HTML dưới dạng Văn Bản Thuần

Cái MailMessage lớp cung cấp tính năng trích xuất phần thân HTML của tin nhắn dưới dạng văn bản thuần. The MailMessage lớp cung cấp một GetHtmlBodyText phương thức trả về phần thân HTML dưới dạng văn bản thuần. Phương thức này phân tích HtmlBody thuộc tính và trả về nội dung văn bản thuần tách riêng, bỏ qua markup HTML. The GetHtmlBodyText phương thức nhận một tham số kiểu boolean cho biết phần thân có nên chứa URL hay không. Đặt tham số là true có nghĩa là phần thân HTML sẽ chứa URL.

Đoạn mã sau đây minh họa việc sử dụng GetHtmlBodyText phương thức để trích xuất phần thân HTML của email dưới dạng văn bản thuần.

// 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);

Truy cập Địa chỉ X.500 Exchange

Cái MailAddress lớp có X500Address thuộc tính được xây dựng để hiển thị địa chỉ định dạng X.500 của Exchange nếu có trong tin nhắn. Nó cung cấp quyền truy cập chỉ đọc vào chuỗi địa chỉ X.500 (Exchange) cho MailAddress các thể hiện và trả về địa chỉ X.500 nếu nó được bao gồm trong siêu dữ liệu tin nhắn, nếu không trả về null hoặc rỗng. Không cần phân tích — thuộc tính trả về chuỗi X.500 thô.

var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;