إدارة جهات اتصال Outlook
مثل MapiMessage، تتيح لك Aspose.Email إنشاء جهات اتصال Outlook. الـ MapiContact الفئة توفر جميع الخصائص المتعلقة بالجهات الاتصال المطلوبة لإنشاء جهة اتصال Outlook. تُظهر هذه المقالة كيفية إنشاء، حفظ وقراءة جهة اتصال Outlook باستخدام الـ MapiContact فئة.
إنشاء وحفظ جهة اتصال Outlook
لإنشاء جهة اتصال وحفظها على القرص:
- إنشاء كائن جديد من MapiContact فئة.
- أدخل معلومات خصائص جهة الاتصال.
- أضف بيانات الصورة (إن وجدت).
- احفظ جهة الاتصال بصيغة MSG أو VCard.
يظهر مقطع الشيفرة التالي كيفية إنشاء وحفظ جهة اتصال Outlook.
حفظ قوائم توزيع MAPI إلى ملفات VCF
تُظهر عينة الشيفرة أدناه كيفية حفظ قائمة توزيع إلى ملف VCF متعدد الاتصالات:
// convert the `msg` object to a `MapiMessage` object
var dlist = (MapiDistributionList)msg.ToMapiMessageItem();
//save the distribution list
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.Save("distribution_list.vcf", options);
تحويل ملفات VCF متعددة الاتصالات إلى MapiDistributionList
تدعم Aspose.Email تحويل ملفات VCF متعددة الاتصالات إلى MapiDistributionList الكائنات، مما يسهل إدارة واستيراد جهات اتصال متعددة مباشرةً إلى تطبيقاتك. هذه الميزة متاحة عبر الطرق الثابتة التالية في الـ MapiDistributionList فئة:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
توضح عينة الشيفرة أدناه كيفية استخدام هذه الميزة:
// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);
حفظ جهات الاتصال بصيغة VCF
لحفظ جهة الاتصال بصيغة VCF الإصدار 3، استخدم الـ VCardVersion قابل للتعداد لتعيين الـ VCardSaveOptions.Version خاصية. يوضح الشفرة النموذجية التالية استخدام VCardVersion قابل للتعداد لحفظ تنسيق VCF الإصدار 3 للاتصال:
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);
قراءة جهات اتصال MAPI
الـ MapiContact يمكن استخدام الفئة لتحميل جهات اتصال بصيغة Outlook MSG و VCard معًا. يُظهر مقطع الشيفرة التالي كيفية تحميل جهات اتصال Outlook المحفوظة كـ MSG و VCF إلى MapiContact.
تحميل جهات الاتصال من ملفات MSG
يظهر مقطع الشيفرة التالي كيفية تحميل جهات الاتصال من MSG.
تحميل جهات الاتصال من VCards
يظهر مقطع الشيفرة التالي كيفية تحميل جهات الاتصال من VCard.
تحميل جهات اتصال MAPI من vCard مع خيارات مخصصة
لتقديم مرونة أكبر عند تحويل ملفات vCard (.vcf) إلى جهات اتصال MAPI، توفر Aspose.Email لـ .NET تحميلًا زائدًا MapiContact.FromVCard(string filePath, VCardLoadOptions options) طريقة تقبل VCardLoadOptions كائن. يوفر تحكمًا محسّنًا في كيفية تفسير ملفات vCard - خصوصًا عند العمل مع صيغ vCard مختلفة، الترميزات، أو سيناريوهات التحليل المتقدمة.
تُظهر عينة الشيفرة التالية كيفية تحميل ملف جهة اتصال .vcf إلى MapiContact كائن باستخدام التحميل الزائد الذي يقبل VCardLoadOptions. بعد ذلك يمكن استخدام جهة الاتصال المحملة داخل ملفات PST، تصدير MSG، أو صيغ أخرى متوافقة مع Outlook.
var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);
تحميل جهات الاتصال من VCards بترميز محدد
يُظهر مقطع الشيفرة التالي كيفية تحميل جهات الاتصال من VCard باستخدام الترميز المحدد.
حفظ عناصر اتصال VCard بترميز محدد
خصص سلوك الحفظ عند العمل مع ملفات VCard باستخدام الـ VCardSaveOptions الفئة. الـ PreferredTextEncoding خاصية في الفئة ستحدد الترميز المستخدم عند حفظ عناصر اتصال VCard.
يعرض نموذج الشيفرة التالي كيفية تنفيذ هذه الخاصية في مشروعك:
var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);
حفظ ملفات VCard مع الحقول الموسعة
الـ UseExtensions الخاصية تسمح لك بالتحكم فيما إذا كان يمكن استخدام الحقول الموسعة عند حفظ ملفات vCard. عند ضبطها على true (الافتراضي)، تُسمح الامتدادات، مما يوفر توافقًا مع الحقول المخصصة ومعلومات الاتصال الإضافية.
قراءة جهات اتصال متعددة بصيغة VCard
تمكن مكتبتنا من الحصول على قائمة جميع جهات الاتصال من VCard. يمكن ذلك باستخدام الطرق والخطوات التالية:
// Checks whether VCard source stream contains multiple contacts.
VCardContact.IsMultiContacts(Stream stream)
// Loads list of all contacts from VCard file.
VCardContact.LoadAsMultiple(string filePath, Encoding encoding)
// Loads list of all contacts from VCard stream.
VCardContact.LoadAsMultiple(Stream stream, Encoding encoding)
يظهر مقطع الشيفرة التالي كيفية التعامل مع ملفات VCard التي تحتوي على جهات اتصال متعددة:
using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
if(VCardContact.IsMultiContacts(stream))
{
List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
}
}
تحميل جهات اتصال vCard بشكل غير متزامن
الـ VCardContact تدعم الفئة في Aspose.Email لـ .NET تحميل ملفات vCard بشكل غير متزامن. يتيح ذلك للتطبيقات قراءة جهة اتصال واحدة أو متعددة من ملفات .vcf أو التدفقات دون حجب الخيط الرئيسي بكفاءة - وهو مثالي لتطبيقات سطح المكتب، الويب، أو الجوال الحديثة التي تتعامل مع قوائم جهات اتصال كبيرة. الطرق التالية في هذه الفئة يمكنها تنفيذ المهمة:
-
LoadAsync -
LoadAsMultipleAsync
تُظهر عينة الشيفرة التالية كيفية تحميل جهات اتصال vCard متعددة بشكل غير متزامن من ملف .vcf باستخدام VCardContact.LoadAsMultipleAsync. تُعالج الاتصالات المحملة في حلقة، حيث يتم طباعة اسم العرض لكل جهة اتصال إلى وحدة التحكم. يضمن النهج غير المتزامن بقاء التطبيق مستجيبًا، حتى عند قراءة ملفات كبيرة.
var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);
foreach (var contact in contacts)
{
Console.WriteLine(contact.IdentificationInfo.DisplayName);
}
عرض معلومات جهة الاتصال إلى MHTML
يمكن تحويل جهة اتصال Outlook إلى MHTML باستخدام Aspose.Email API. يوضح هذا المثال كيفية تحميل VCard إلى MapiContact ثم يتم تحويلها إلى MHTML بمساعدة MailMessage API.
//Load VCF Contact and convert to MailMessage for rendering to MHTML
var contact = MapiContact.FromVCard("Contact.vcf");
MemoryStream ms = new MemoryStream();
contact.Save(ms, ContactSaveFormat.Msg);
ms.Position = 0;
MapiMessage msg = MapiMessage.Load(ms, new MsgLoadOptions());
MailConversionOptions op = new MailConversionOptions();
MailMessage eml = msg.ToMailMessage(op);
//Prepare the MHT format options
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
mhtSaveOptions.CheckBodyContentEncoding = true;
mhtSaveOptions.PreserveOriginalBoundaries = true;
MhtFormatOptions formatOp = MhtFormatOptions.WriteHeader | MhtFormatOptions.RenderVCardInfo;
mhtSaveOptions.RenderedContactFields = ContactFieldsSet.NameInfo | ContactFieldsSet.PersonalInfo | ContactFieldsSet.Telephones | ContactFieldsSet.Events;
mhtSaveOptions.MhtFormatOptions = formatOp;
eml.Save("ContactMhtml_out.mhtml", mhtSaveOptions);