ניהול אנשי קשר של Outlook
מאמר זה מכסה Outlook עצמאי MapiContact פריטים נשמרים כ‑MSG או vCard (VCF). עבור הפורמט‑נייטרלי VCardContact מחלקה הקוראת וכותבת קבצי vCard ישירות, ראו עבודה עם קבצי vCard (VCF). כדי לאחסן ולקרוא אנשי קשר בתוך PST, ראו ניהול אנשי קשר בקבצי PST.
כמו MapiMessage, Aspose.Email מאפשרת ליצור אנשי קשר של Outlook. ה‑ MapiContact מחלקה זו מספקת את כל המאפיינים הקשורים לאיש קשר הדרושים ליצירת איש קשר של Outlook. מאמר זה מציג כיצד ליצור, לשמור ולקרא איש קשר של Outlook באמצעות MapiContact מחלקה.
יצירת ושמירת איש קשר של Outlook
כדי ליצור איש קשר ולשמור אותו בכונן:
- צור מופע חדש של ה‑ MapiContact מחלקה.
- הזן מידע על מאפייני האיש קשר.
- הוסף נתוני תמונה (אם קיימים).
- שמור את האיש קשר בפורמט MSG או VCard.
קטע הקוד הבא מראה כיצד ליצור ולשמור איש קשר של Outlook.
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Outlook();
MapiContact contact = new MapiContact();
contact.NameInfo = new MapiContactNamePropertySet("Bertha", "A.", "Buell");
contact.ProfessionalInfo = new MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant");
contact.PersonalInfo.PersonalHomePage = "B2BTies.com";
contact.PhysicalAddresses.WorkAddress.Address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact.Telephones = new MapiContactTelephonePropertySet("06605045265");
contact.PersonalInfo.Children = new string[] { "child1", "child2", "child3" };
contact.Categories = new string[] { "category1", "category2", "category3" };
contact.Mileage = "Some test mileage";
contact.Billing = "Test billing information";
contact.OtherFields.Journal = true;
contact.OtherFields.Private = true;
contact.OtherFields.ReminderTime = new DateTime(2014, 1, 1, 0, 0, 55);
contact.OtherFields.ReminderTopic = "Test topic";
contact.OtherFields.UserField1 = "ContactUserField1";
contact.OtherFields.UserField2 = "ContactUserField2";
contact.OtherFields.UserField3 = "ContactUserField3";
contact.OtherFields.UserField4 = "ContactUserField4";
// Add a photo
using (FileStream fs = File.OpenRead(dataDir + "Desert.jpg"))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
contact.Photo = new MapiContactPhoto(buffer,
MapiContactPhotoImageFormat.Jpeg);
}
// Save the Contact in MSG format
contact.Save(dataDir + "MapiContact_out.msg",ContactSaveFormat.Msg);
// Save the Contact in VCF format
contact.Save(dataDir + "MapiContact_out.vcf", ContactSaveFormat.VCard);
שמר רשימות הפצה MAPI לקבצי VCF
דוגמת הקוד שלהלן מציגה כיצד לשמור רשימת הפצה לקובץ VCF מרובה אנשי קשר:
// convert the `msg` object to a `MapiDistributionList` 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.
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();
Console.WriteLine(contact.NameInfo.DisplayName);
טען אנשי קשר מ‑VCards
קוד הקטע הבא מראה כיצד לטעון קובץ vCard ל‑ MapiContact באמצעות ה- FromVCard שיטה. כדי לטעון vCard ל‑ VCardContact במקום זאת, ראו עבודה עם קבצי vCard (VCF).
MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");
טען אנשי קשר 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 מצוין דרך ה‑ PreferredEncoding מאפיין של VCardLoadOptions מחלקה. קטע הקוד הבא מראה כיצד לטעון אנשי קשר מ‑VCard עם הקידוד המוגדר.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
שמור קבצי VCard עם שדות מורחבים
ה UseExtensions מאפיין זה מאפשר לך לשלוט אם ניתן להשתמש בשדות מורחבים בעת שמירת קבצי VCard. כאשר מוגדר ל‑true (ברירת מחדל), הרחבות מותרות, מה שמספק תאימות לשדות מותאמים ומידע נוסף על איש הקשר.
קוד הדוגמה הבא מציג איך להשבית את השדות המורחבים בעת שמירת איש קשר:
var contact = MapiContact.FromVCard("contact.vcf");
var options = new VCardSaveOptions
{
UseExtensions = false
};
contact.Save("contact_out.vcf", options);
עבודה ישירה עם קבצי vCard
קריאה וכתיבת קבצי vCard (VCF) עם הפורמט‑נייטרלי VCardContact מחלקה — טעינה של איש קשר בודד או מרובה, בחירת קידוד הטקסט, שמירה עם גרסת vCard ספציפית, וטעינה אסינכרונית — מכוסה במאמר ייעודי: עבודה עם קבצי vCard (VCF).
הצגת מידע איש קשר ל‑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);
ראייה נוספת
- עבודה עם קבצי vCard (VCF) — לקרוא ולכתוב קבצי vCard ישירות עם ה‑
VCardContactמחלקה. - ניהול אנשי קשר בקבצי PST — לאחסן ולקרוא אנשי קשר בתוך PST.