مدیریت مخاطبین Outlook

مانند MapiMessage، Aspose.Email به شما امکان می‌دهد مخاطبین Outlook را ایجاد کنید. MapiContact کلاس تمام ویژگی‌های مرتبط با مخاطب مورد نیاز برای ایجاد یک مخاطب Outlook را فراهم می‌کند. این مقاله نشان می‌دهد چگونه یک مخاطب Outlook را ایجاد، ذخیره و خوانده شود با استفاده از MapiContact کلاس.

ایجاد و ذخیره مخاطب Outlook

برای ایجاد یک مخاطب و ذخیره آن بر روی دیسک:

  1. یک شیء جدید از MapiContact کلاس.
  2. اطلاعات خصوصیات مخاطب را وارد کنید.
  3. داده‌های عکس را اضافه کنید (در صورت وجود).
  4. مخاطب را به صورت فرمت 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 کلاس:

نمونه کد زیر نشان می‌دهد چگونه از این ویژگی استفاده کنید:

// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);

ذخیره مخاطبین در قالب VCF

برای ذخیره مخاطب در فرمت VCF نسخه 3، از … استفاده کنید. VCardVersion قابل شمارش برای تنظیم  VCardSaveOptions.Version ویژگی. کد نمونه زیر نحوه استفاده از را نشان می‌دهد VCardVersion قابل‌تجمیع برای ذخیره تماس در قالب VCF نسخه ۳:

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 بارگذاری کنید.

بارگذاری مخاطبین از VCardها

قطعه کد زیر نشان می‌دهد چگونه مخاطبین را از VCard بارگذاری کنید.

بارگذاری مخاطبین MAPI از vCard با گزینه‌های سفارشی

برای فراهم کردن انعطاف بیشتر هنگام تبدیل فایل‌های vCard (.vcf) به مخاطبین MAPI، Aspose.Email برای .NET یک overload ارائه می‌دهد MapiContact.FromVCard(string filePath, VCardLoadOptions options) متدی که یک VCardLoadOptions شیء. این امکان کنترل بهبود یافته‌ای را بر تفسیر فایل‌های vCard فراهم می‌کند - به‌ویژه هنگام کار با فرمت‌ها، رمزگذاری‌ها یا سناریوهای پیشرفتهٔ تجزیه vCard.

نمونه کد زیر نشان می‌دهد چگونه یک فایل تماس .vcf را به یک MapiContact شیء با استفاده از overloadی که می‌پذیرد VCardLoadOptions. تماس بارگذاری‌شده می‌تواند سپس در فایل‌های PST، خروجی MSG یا سایر فرمت‌های سازگار با Outlook استفاده شود.

var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);

بارگذاری مخاطبین از VCardها با رمزگذاری مشخص

قطعه کد زیر نشان می‌دهد چگونه مخاطبان را از 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 می‌تواند با استفاده از Aspose.Email API به MHTML تبدیل شود. این مثال نشان می‌دهد چگونه یک 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);