1. المقدمة
GroupDocs.Viewer for .NET تسمح لك باستيراد رسالة البريد الإلكتروني في أي تنسيق شائع، وتحويلها إلى HTML أو PNG أو JPEG أو PDF، وكذلك استخراج خصائص رسالة البريد الأساسية دون الحاجة إلى العرض الفعلي.
في الواقع، عند العمل مع رسائل البريد الإلكتروني في GroupDocs.Viewer، يجب أن يكون المستخدمون على علم بنوعين خاصين بالبريد الإلكتروني:
- الفئة
Options.EmailOptions– تتيح لك التحكم في طريقة عرض الرسالة (حجم الصفحة، تنسيق التاريخ، الحقول، إلخ). - الفئة
Results.MailMessageViewInfo— يتم إنشاؤها بواسطة GroupDocs.Viewer بعد استدعاء طريقةGetViewInfo()وتحتوي على البيانات الوصفية للرسالة البريدية المحملة.
فيما يلي دليل سريع يوضح كيفية عرض رسائل البريد الإلكتروني والحصول على بياناتها الوصفية.
2. تحميل رسالة بريد إلكتروني وعرضها بجميع صيغ الإخراج
مثال شفرة قصير جداً أدناه يوضح تحميل رسالة بريد إلكتروني مدخل “sample.eml” إلى كائن من الفئة Viewer ثم عرضها إلى جميع صيغ الإخراج الأربعة المدعومة: HTML، PDF، PNG، و JPEG. كما ترى، في البداية يتم إنشاء جميع فئات خيارات العرض الأربعة، ثم يتم تحميل “sample.eml” إلى كائن Viewer عبر مسار الملف، ثم يتم استدعاء 4 مرات لطريقة 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. ضبط خيارات البريد الإلكتروني للعرض
المثال أعلاه يُظهر العرض مع تعيين جميع الخيارات إلى القيم الافتراضية. ومع ذلك، هناك فئة EmailOptions، وهي متاحة في جميع خيارات العرض الأربعة (HtmlViewOptions، PdfViewOptions، PngViewOptions، JpgViewOptions) عبر الخاصية EmailOptions. لا حاجة لإنشاء نسخة يدوية من فئة EmailOptions وتعيينها إلى خيارات العرض عبر الخاصية EmailOptions — كل ذلك يتم تلقائياً، وعلى المستخدم فقط تعديل قيم الخصائص إذا لزم الأمر.
هناك عدة خصائص في فئة EmailOptions، موضحة أدناه.
3.1. حجم الصفحة
العدد Enum PageSize يتحكم في حجم صفحة الإخراج. القيمة الافتراضية هي Unspecified — يقوم GroupDocs.Viewer بضبط الحجم إلى الأنسب. يمكن تعيينه بالطريقة التالية، على سبيل المثال:
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. تنسيق التاريخ والوقت والمنطقة الزمنية
عادةً ما تحتوي رسائل البريد الإلكتروني على تاريخ “الإرسال”. الخاصية 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. تعديل الحقول
تحتوي رسالة البريد على نص الرسالة وحقول مثل الموضوع، تاريخ الإرسال، المرسل، إلخ. يتيح GroupDocs.Viewer للمستخدمين تجاوز تسميات هذه الحقول عبر الخاصية FieldTextMap، التي تُطابق قيمة تعداد Field (مثل Field.Subject) بالنص الذي يظهر في النتيجة عبر Dictionary. وبالتالي يمكن للمستخدم استبدال أي إدخال أو إضافة جديدة:
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. تحميل بريد إلكتروني والحصول على معلومات عرضه
يمكن الحصول على بعض قيم الحقول لرسالة البريد إلكترونياً دون الحاجة إلى عرض الرسالة نفسها. للقيام بذلك، يجب على المستخدم تحميل مستند البريد إلى كائن 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. الخلاصة
- أنشئ كائن
Viewerوحدد ملف رسالة البريد الإلكتروني المدخل إلى مُنشئه عبر المسار أو التيار. - استدعِ طريقة
Viewer.GetViewInfo()ثم حوِّل نتيجتها إلى النوعMailMessageViewInfoللحصول على البيانات الوصفية: حقولSent،Subject، وFrom. - استخدم
EmailOptionsلتغيير حجم الصفحة، تنسيق التاريخ، إزاحة المنطقة الزمنية، أو تسمية النص المعروضة لأي حقل، ثم استدعِ طريقةViewer.View().
هذه الخطوات تزودك بالخصائص الأساسية للبريد الإلكتروني وتتيح لك التحكم في مظهر الرسالة عند عرضها. لا تحتاج إلى مكتبات إضافية أو شفرة معقدة.
راجع أيضاً
احصل على نسخة تجريبية مجانية
يمكنك تنزيل نسخة تجريبية مجانية من GroupDocs.Viewer for .NET من releases.groupdocs.com. يمكنك أيضاً الحصول على ترخيص مؤقت لتجربة جميع الميزات والوظائف دون قيود من here.