การจัดการรายชื่อผู้ติดต่อ 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 enumeration เพื่อกำหนด VCardSaveOptions.Version คุณสมบัติ ตัวอย่างโค้ดต่อไปนี้แสดงการใช้ VCardVersion enumeration เพื่อบันทึกเวอร์ชัน 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);
โหลดผู้ติดต่อจาก VCard
โค้ดต่อไปนี้แสดงวิธีโหลดไฟล์ 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);
โหลดผู้ติดต่อจาก VCard ด้วยการเข้ารหัสที่ระบุ
การเข้ารหัสไฟล์ vCard ระบุผ่าน PreferredEncoding คุณสมบัติของ VCardLoadOptions คลาส. โค้ดต่อไปนี้แสดงวิธีโหลดผู้ติดต่อจาก VCard ด้วยการเข้ารหัสที่ระบุ.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
บันทึกไฟล์ VCard พร้อมฟิลด์ขยาย
นี้ UseExtensions property นี้ให้คุณควบคุมว่าจะใช้ฟิลด์ขยายเมื่อบันทึกไฟล์ 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