Управление на контакти в Outlook
Подобно на MapiMessage, Aspose.Email позволява създаването на Outlook контакти. The 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, в a MapiContact.
Зареждане на контакти от MSG файлове
Следният кодов откъс показва как да заредите контакти от MSG.
Зареждане на контакти от VCard файлове
Следният кодов откъс показва как да заредите контакти от VCard.
Зареждане на MAPI контакти от vCard с персонализирани опции
За да предостави повече гъвкавост при конвертиране на VCard (.vcf) файлове в MAPI контакти, Aspose.Email за .NET предлага претоварен метод MapiContact.FromVCard(string filePath, VCardLoadOptions options) метод, който приема a VCardLoadOptions обект. Той предлага подобрен контрол върху начина, по който се интерпретират VCard файловете – особено при работа с различни VCard формати, кодирания или сложни сценарии за парсиране.
Следният примерен код демонстрира как да се зареди .vcf файл с контакти в a MapiContact обект, използвайки претоварения метод, който приема 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 контакт може да бъде конвертиран в 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);