استخراج محتوای پیام ایمیل در 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 است که مانند یک شمارش عادی کار می‌کند. برای استخراج سرصفحه‌ها از یک ایمیل، مراحل زیر را دنبال کنید:

  1. یک نمونه از MailMessage کلاس.
  2. یک پیام ایمیل را در نمونه‌ی MailMessage کلاس.
  3. پس از بارگذاری پیام ایمیل، محتویات خام آن را دریافت می‌کنیم.

این 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);

استخراج بدنه ایمیل

دریافت بدنه متن ساده

این بدنه ویژگی نمایه متن ساده‌ای از بدنه پیام برمی‌گرداند.

string plainTextBody = mailMessage.Body;

توجه: اگر بخش MIME text/plain در پیام موجود باشد، ویژگی داده‌های متنی آن را برمی‌گرداند. در غیر این صورت، محتویات متن جداگانه را از HtmlBody ویژگی بدون markup HTML.

دریافت بدنه HTML به صورت متن ساده

این MailMessage کلاس ویژگی استخراج بدنه HTML پیام به صورت متن ساده را فراهم می‌کند. این MailMessage کلاس یک GetHtmlBodyText متدی که بدنه HTML را به متن ساده برمی‌گرداند. این متد پارس می‌کند HtmlBody ویژگی که محتویات متن ساده جداگانه را بدون درنظر گرفتن markup 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;