Работа с контактами в файле PST
Добавление контакта в PST
Статья Создание нового PST файла и добавление подпапок показывает, как создать PST файл и добавить к нему подпапку. С помощью Aspose.Email вы можете добавить MapiContact в подпапку Контакты PST файла, который вы создали или загрузили. Ниже приведены шаги для добавления MapiContact в PST:
- Создайте объект MapiContact.
- Установите свойства MapiContact с помощью различных конструкторов и методов.
- Создайте PST с помощью метода PersonalStorage.Create().
- Создайте предопределенную папку (Контакты) в корне файла PST, обратившись к корневой папке и затем вызвав метод AddMapiMessageItem().
Следующий фрагмент кода показывает, как создать MapiContact и затем добавить его в папку контактов нового PST файла.
// Создайте три контакта
var contact1 = new MapiContact("Себастьян Урайт", "SebastianWright@dayrep.com");
var contact2 = new MapiContact("Вихерт Кроос", "WichertKroos@teleworm.us", "Инвестиции класса A");
var contact3 = new MapiContact("Кристоффер ван де Миберг", "ChristoffervandeMeeberg@teleworm.us", "Фабрика диванов Краузес", "046-630-4614046-630-4614");
// Контакт #4
var contact4 = new MapiContact{NameInfo = new MapiContactNamePropertySet("Маргарет", "J.", "Толле")};
contact4.PersonalInfo.Gender = MapiContactGender.Female;
contact4.ProfessionalInfo = new MapiContactProfessionalPropertySet("Адаптаз", "Звукорежиссёр");
contact4.PhysicalAddresses.WorkAddress.Address = "4 Дурвиния Луп EIGHTY MILE BEACH WA 6725";
contact4.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Hisen1988", "SMTP", "MargaretJTolle@dayrep.com");
contact4.Telephones.BusinessTelephoneNumber = "(08)9080-1183";
contact4.Telephones.MobileTelephoneNumber = "(925)599-3355(925)599-3355";
// Контакт #5
var contact5 = new MapiContact{NameInfo = new MapiContactNamePropertySet("Мэтью", "R.", "Уилкокс")};
contact5.PersonalInfo.Gender = MapiContactGender.Male;
contact5.ProfessionalInfo = new MapiContactProfessionalPropertySet("Бриазз", "Психиатрический помощник");
contact5.PhysicalAddresses.WorkAddress.Address = "Хорнер Штрассе 12 4421 SAASS";
contact5.Telephones.BusinessTelephoneNumber = "0650 675 73 300650 675 73 30";
contact5.Telephones.HomeTelephoneNumber = "(661)387-5382(661)387-5382";
// Контакт #6
var contact6 = new MapiContact
{
NameInfo = new MapiContactNamePropertySet("Берта", "A.", "Бюэлл"),
ProfessionalInfo = new MapiContactProfessionalPropertySet("Awthentikz", "Помощник социального работника")
};
contact6.PersonalInfo.PersonalHomePage = "B2BTies.com";
contact6.PhysicalAddresses.WorkAddress.Address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact6.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact6.Telephones = new MapiContactTelephonePropertySet("06605045265");
using (PersonalStorage personalStorage = PersonalStorage.Create("SampleContacts_out.pst", FileFormatVersion.Unicode))
{
var contactFolder = personalStorage.CreatePredefinedFolder("Контакты", StandardIpmFolder.Contacts);
contactFolder.AddMapiMessageItem(contact1);
contactFolder.AddMapiMessageItem(contact2);
contactFolder.AddMapiMessageItem(contact3);
contactFolder.AddMapiMessageItem(contact4);
contactFolder.AddMapiMessageItem(contact5);
contactFolder.AddMapiMessageItem(contact6);
}
Сохранение информации о контактах из PST файла в формате MSG
В этой статье объясняется, как получить информацию о контактах из файла Outlook PST и сохранить контакт на диск в формате MSG. Шаги для получения информации о контакте следующие:
- Загрузите файл PST в объекте PersonalStorage.
- Просмотрите папку Контактов.
- Получите содержимое папки Контактов, пройдя по сообщениям.
- Убедитесь, что значение свойства MessageInfo.MessageClass соответствует “IPM.Contact”.
- Вызовите метод PersonalStorage.ExtractMessage() для получения объекта MapiMessage.
- Вызовите метод MapiMessage.Save() для сохранения контакта на диск в формате MSG.
Следующий фрагмент кода показывает, как извлечь всю информацию о контактах из файла PST и сохранить на диск в формате MSG.
// Загрузите файл Outlook PST
var pst = PersonalStorage.FromFile("SampleContacts.pst");
// Получите папку Контактов
var contactsFolder = pst.RootFolder.GetSubFolder("Contacts");
// Пройдите по всем контактам в этой папке
foreach (MessageInfo messageInfo in contactsFolder.EnumerateMessages())
{
if (messageInfo.MessageClass == "IPM.Contact")
{
// Получите информацию о контакте
var msg = pst.ExtractMessage(messageInfo);
// Сохраните на диск в формате msg
string contactName = msg.Subject.Replace(":", " ").Replace("\\", " ").Replace("?", " ").Replace("/", " ");
msg.Save($"{contactName}.msg", SaveOptions.DefaultMsgUnicode);
}
}
Сохранение информации о контактах из PST файла в формате VCF
Эта статья показывает, как получить информацию о контактах из файла Microsoft Outlook PST и сохранить контакт на диск в формате vCard (VCF). Используйте классы PersonalStorage и MapiContact, чтобы получить информацию о контактах из файла PST. Для получения информации о контакте:
- Загрузите файл PST в классе PersonalStorage.
- Просмотрите папку Контактов.
- Получите содержимое папки Контактов, пройдя по сообщениям.
- Убедитесь, что значение свойства MessageInfo.MessageClass соответствует “IPM.Contact”.
- Вызовите метод PersonalStorage.ExtractMessage() для получения объекта MapiMessage.
- Вызовите метод MapiMessage.ToMapiMessageItem() и приведите IMapiMessageItem к типу MapiContact.
- Вызовите метод MapiContact.Save(), чтобы сохранить контакт на диск в формате VCard.
Программа ниже загружает файл PST с диска и сохраняет все контакты в формате vCard (VCF). Файлы VCF затем можно использовать в любой другой программе, которая может загрузить стандартный файл контакта vCard. Если открыть любой файл VCF в Microsoft Outlook, он будет выглядеть как в ниже приведенном скриншоте.
Следующий фрагмент кода показывает, как экспортировать контакты из Outlook PST в формат vCard (VCF). |
// Загрузите файл Outlook PST
var pst = PersonalStorage.FromFile("SampleContacts.pst");
// Получите папку Контактов
var contactsFolder = pst.RootFolder.GetSubFolder("Contacts");
// Пройдите по всем контактам в этой папке
foreach (MessageInfo messageInfo in contactsFolder.EnumerateMessages())
{
if (messageInfo.MessageClass == "IPM.Contact")
{
// Получите информацию о контакте
var msg = pst.ExtractMessage(messageInfo);
var contact = (MapiContact)msg.ToMapiMessageItem();
// Отобразите некоторые содержимое на экране
Console.WriteLine("Имя: " + contact.NameInfo.DisplayName);
// Сохраните на диск в формате VCard
string contactName = contact.Subject.Replace(":", " ").Replace("\\", " ").Replace("?", " ").Replace("/", " ");
contact.Save($"{contactName}.vcf", ContactSaveFormat.VCard);
}
}
См. также: Работа с Распределительными Списками