1. Introduction
GroupDocs.Viewer for .NET کتابخانهای است که به شما امکان میدهد پیام ایمیل را در هر فرمت محبوبی وارد کنید، آن را به HTML، PNG، JPEG و PDF رندر کنید و همچنین ویژگیهای پایهای پیام ایمیل را بدون رندر واقعی استخراج کنید.
در واقع، هنگام کار با پیامهای ایمیل در GroupDocs.Viewer، کاربران باید از دو نوع خاص ایمیل آگاه باشند:
- کلاس
Options.EmailOptions– به شما اجازه میدهد نحوه رندر پیام (اندازه صفحه، فرمت تاریخ، فیلدها و غیره) را کنترل کنید. Results.MailMessageViewInfo— پس از فراخوانی متدGetViewInfo()توسط GroupDocs.Viewer تولید میشود و متادیتای پیام ایمیل بارگذاریشده را در خود نگه میدارد.
در ادامه یک راهنمای سریع آورده شده است که نشان میدهد چگونه پیامهای ایمیل را رندر کنید و متادیتای آنها را دریافت کنید.
2. Load an email message and render it to all output formats
مثال کوتاه کد زیر نشان میدهد که چگونه پیام ایمیل ورودی «sample.eml» را به یک نمونه از کلاس Viewer بارگذاری کرده و سپس به چهار فرمت خروجی پشتیبانیشده (HTML، PDF، PNG و JPEG) رندر میکنید. همانطور که میبینید، در ابتدا چهار کلاس گزینهٔ نمایش ایجاد میشوند، سپس «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. Tuning email options for rendering
مثال بالا رندر با تمام گزینهها را نشان میدهد که به مقادیر پیشفرض تنظیم شدهاند. با این حال، کلاس EmailOptions وجود دارد و از طریق ویژگی EmailOptions در تمام چهار گزینهٔ نمایش (HtmlViewOptions، PdfViewOptions، PngViewOptions، JpgViewOptions) در دسترس است. نیازی به ایجاد دستی یک نمونه از کلاس EmailOptions و اختصاص آن به گزینههای نمایش نیست — تمام این کارها بهصورت خودکار انجام میشود و کاربر فقط در صورت نیاز مقادیر ویژگیها را تنظیم میکند.
چندین ویژگی در کلاس EmailOptions وجود دارد که در ادامه توضیح داده میشوند.
3.1. Page size
اندازهٔ صفحهٔ خروجی را کنترل میکند. بهصورت پیشفرض مقدار Unspecified است — GroupDocs.Viewer اندازه را به مناسبترین حالت تنظیم میکند. میتوانید بهعنوان مثال به این شکل تنظیم کنید:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Date and time format and time zone
پیامهای ایمیل معمولاً تاریخ «ارسال» دارند. ویژگی 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. Adjusting fields
پیام ایمیل شامل بدنهٔ پیام و فیلدهایی مانند موضوع، تاریخ‑زمان ارسال، فرستنده و غیره است. 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. Load an email and get its view information
میتوانید برخی از مقادیر فیلدهای پیام ایمیل را بهصورت برنامهنویسی بدون رندر کردن خود پیام دریافت کنید. برای این کار کاربر باید سند پیام ایمیل را به نمونهٔ 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 پشتیبانی میشوند.
| Property | Type | Meaning |
|---|---|---|
Sent |
DateTime |
زمان دقیق ارسال ایمیل. |
Subject |
string |
متنی که در خط موضوع ایمیل ظاهر میشود. |
From |
string |
آدرس ایمیل فرستنده بهصورت رشتهٔ ساده. |
هر سه ویژگی فقط‑خواندنی هستند.
5. Summary
- یک نمونهٔ
Viewerایجاد کنید و فایل پیام ایمیل ورودی را از طریق مسیر یا استریم به سازندهٔ آن بدهید. - متد
Viewer.GetViewInfoرا فراخوانی کنید و نتیجهٔ آن را به نوعMailMessageViewInfoتبدیل کنید تا متادیتاهایSent،SubjectوFromرا دریافت کنید. - از
EmailOptionsبرای تغییر اندازه صفحه، فرمت تاریخ، جابهجایی منطقهٔ زمانی یا برچسب متنی هر فیلد استفاده کنید و سپس متدViewer.View()را فراخوانی کنید.
این مراحل به شما امکان میدهد ویژگیهای اصلی ایمیل را بهدست آورید و نحوهٔ نمایش پیام را هنگام رندر کنترل کنید. نیازی به کتابخانههای اضافی یا کدهای پیچیده نیست.
See Also
Get a free trial
میتوانید نسخهٔ آزمایشی رایگان GroupDocs.Viewer for .NET را از releases.groupdocs.com دانلود کنید. همچنین میتوانید یک لایسنس موقت برای امتحان تمام ویژگیها و قابلیتها بدون محدودیت از here دریافت کنید.