استخراج محتوای پیام از ایمیلها
نمایش اطلاعات ایمیل روی صفحه
این MailMessage نمایانگر یک پیام ایمیل است و به توسعهدهندگان اجازه دسترسی به ویژگیهای پیام ایمیل را میدهد. اطلاعات هدر (که در استخراج هدرهای ایمیل) میتواند بهطرق مختلف استخراج و دستکاری شود. این مقاله توضیح میدهد چگونه اطلاعات منتخب هدر ایمیل و متن ایمیل را روی صفحه نمایش کنیم.
- یک نمونه از MailMessage ایجاد کنید.
- یک پیام ایمیل را به نمونهٔ MailMessage بارگذاری کنید.
- محتوای ایمیل را روی صفحه نمایش دهید.
کد زیر نشان میدهد چگونه یک پیام ایمیل را بارگذاری کنید و محتوای آن - از، تا، موضوع و متن ایمیل - را روی صفحه نمایش دهید.
دریافت تاریخ و زمان پیام
این MailMessage کلاسی که میتواند تاریخ پیام را در UTC یا منطقه زمانی محلی بازیابی کند. این اطلاعات بهصورت زیر خلاصه میشود:
- MailMessage.getDate() - تاریخ را در UTC برمیگرداند
- MailMessage.getLocalDate() - تاریخ را در منطقه زمانی محلی برمیگرداند
- MailMessage.isLocalDate اگر MailMessage.getDate() در منطقه زمانی محلی باشد، true برمیگرداند
استخراج هدرهای ایمیل
هدر ایمیل مجموعهٔ استاندارد فیلدهای هدر تعریفشده توسط اینترنت و RFC را که در پیامهای ایمیل اینترنتی گنجانده میشود، نشان میدهد. میتوان هدر ایمیل را با استفاده از MailMessage کلاس. انواع هدرهای رایج در HeaderType کلاس. این یک کلاس sealed است که مانند شمارش معمولی عمل میکند.
برای استخراج هدرها از یک ایمیل، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس MailMessage ایجاد کنید.
- یک پیام ایمیل را در نمونهٔ کلاس MailMessage بارگذاری کنید.
- پس از بارگذاری یک پیام ایمیل، محتوای خام آن را دریافت میکنیم. کلاس MailMessage خود شامل ویژگیهایی مانند From، To، Cc، Subject و غیره است. این ویژگیها میتوانند از هدرها استخراج شوند.
- محتوای خام را نمایش دهید.
دریافت مقادیر سرصفحههای رمزگشاییشده
دریافت و تغییر هدر وضعیت منبع لینکشده
منبع لینکشده میتواند بهصورت برنامهنویسی در شی پیام ایمیل دسترسی پیدا کرده و دستکاری شود. getContentDisposition() متد از LinkedResource کلاسی که هدر Content-Disposition را دریافت میکند. نمونه کد زیر نشان میدهد چگونه به نام فایل منبع لینکشده دسترسی پیدا کرده و آن را تغییر دهیم:
MailMessage eml = MailMessage.load(fileName);
eml.getLinkedResources().get_Item(0).getContentDisposition().setFileName("changed.png");
دریافت بدنه HTML بهصورت متن ساده
این MailMessage کلاسی که امکان استخراج بدنه HTML پیام بهصورت متن ساده را فراهم میکند. کلاس MailMessage یک GetHtmlBodyText روشی که بدنه HTML را بهصورت متن ساده برمیگرداند. متد GetHtmlBodyText یک پارامتر بولی میگیرد که نشان میدهد آیا بدنه باید شامل URLها باشد یا خیر. ارسال مقدار true به این پارامتر به این معنی است که بدنه HTML باید شامل URLها باشد.
کد نمونه زیر استفاده از متد GetHtmlBodyText را برای استخراج بدنه HTML ایمیل بهصورت متن ساده نشان میدهد.
بازیابی آدرسهای X.500 Exchange از ایمیلها
Aspose.Email برای جاوا به شما امکان دسترسی مستقیم به آدرسهای X.500 Exchange را از طریق MailAddress کلاس. با X500Address با این ویژگی، میتوانید آدرس ایمیل را در قالب X.500 Exchange زمانی که موجود باشد دریافت کنید. نمونه کد زیر نشان میدهد چگونه یک پیام ایمیل را بارگذاری کرده و آدرس X.500 ارسالکننده را دریافت کنید:
MailMessage mailMessage = MailMessage.load(fileName);
String exaddr = mailMessage.getFrom().getX500Address();
اگر آدرس X.500 وجود داشته باشد، بهصورت رشته بازگردانده میشود و میتواند برای پردازش یا لاگگذاری بیشتر در برنامههایی که با سیستمهای مبتنی بر Exchange تعامل دارند استفاده شود.
استخراج و جاسازی تصاویر لینکشده بهعنوان پیوست در ایمیلهای HTML
Aspose.Email ExtractHTMLBodyResourcesAsAttachments متد از HtmlSaveOption کلاسی که تعیین میکند آیا منابع بدنه HTML بهصورت پیوست استخراج شوند یا خیر. بنابراین، میتوانید محتوای تصویر لینکشده از بدنه HTML را استخراج کرده و بهعنوان پیوست در یک پیام MIME جاسازی کنید. تصاویر لینکشده حفظ شده و بهدرستی با ایمیل مرتبط میشوند، که یکپارچگی محتوا و دسترسی آفلاین را بهبود میبخشد.
نمونه کد زیر نشان میدهد چگونه این کار را انجام دهید:
MailMessage mailMessage = MailMessage.load("input.eml");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExtractHTMLBodyResourcesAsAttachments(true);
options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
public void invoke(final Object sender, final ResourceHtmlRenderingEventArgs e) {
System.out.println(e.getPathToResourceFile() + " " + ((Attachment)sender).getContentId());
}
});