ניהול אנשי קשר של 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 רשימה (enumerable) לשמירת איש הקשר בפורמט 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);