Работа с контактами в файле PST
Чтение нескольких контактов в формате VCard
Ниже приведен образец кода, который демонстрирует, как прочитать файл VCF, проверить, содержит ли он несколько контактов, и, если да, загрузить контакты из файла в список объектов VCardContact. Код использует следующие методы:
- isMultiContacts(InputStream stream) - Проверяет, содержит ли исходный поток несколько контактов.
- loadAsMultiple(String filePath, Charset encoding) - Загружает список контактов из файла с несколькими контактами.
- loadAsMultiple(InputStream stream, Charset encoding) - Загружает список контактов из потока с несколькими контактами.
try (InputStream stream = new FileInputStream("test.vcf")) {
if (VCardContact.isMultiContacts(stream)) {
List<VCardContact> contacts = VCardContact.loadAsMultiple(stream, Charset.forName("utf-8"));
}
}
Добавление контакта в PST
Создание нового PST, добавление подпапок и сообщений показало, как создать файл PST и добавить к нему подпапку. С помощью Aspose.Email вы можете добавить MapiContact в подпапку Контакты файла PST, который вы создали или загрузили. Ниже приведены шаги для добавления MapiContact в PST:
- Создайте объект MapiContact.
- Установите свойства MapiContact с помощью различных конструкторов и методов.
- Создайте PST с помощью метода PersonalStorage.create().
- Создайте предварительно заданную папку (Контакты) в корне файла PST, получив доступ к корневой папке, а затем вызвав метод addMapiMessageItem().
Ниже приведен фрагмент кода, который показывает, как создать MapiContact и затем добавить его в папку Контакты нового файла PST.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java | |
// Contact #1 | |
MapiContact contact1 = new MapiContact("Sebastian Wright", "SebastianWright@dayrep.com"); | |
// Contact #2 | |
MapiContact contact2 = new MapiContact("Wichert Kroos", "WichertKroos@teleworm.us", "Grade A Investment"); | |
// Contact #3 | |
MapiContact contact3 = new MapiContact("Christoffer van de Meeberg", "ChristoffervandeMeeberg@teleworm.us", "Krauses Sofa Factory", "046-630-4614"); | |
// Contact #4 | |
MapiContact contact4 = new MapiContact(); | |
contact4.setNameInfo(new MapiContactNamePropertySet("Margaret", "J.", "Tolle")); | |
contact4.getPersonalInfo().setGender(MapiContactGender.Female); | |
contact4.setProfessionalInfo(new MapiContactProfessionalPropertySet("Adaptaz", "Recording engineer")); | |
contact4.getPhysicalAddresses().getWorkAddress().setAddress("4 Darwinia Loop EIGHTY MILE BEACH WA 6725"); | |
contact4.getElectronicAddresses().setEmail1(new MapiContactElectronicAddress("Hisen1988", "SMTP", "MargaretJTolle@dayrep.com")); | |
contact4.getTelephones().setBusinessTelephoneNumber("(08)9080-1183"); | |
contact4.getTelephones().setMobileTelephoneNumber("(925)599-3355"); | |
// Contact #5 | |
MapiContact contact5 = new MapiContact(); | |
contact5.setNameInfo(new MapiContactNamePropertySet("Matthew", "R.", "Wilcox")); | |
contact5.getPersonalInfo().setGender(MapiContactGender.Male); | |
contact5.setProfessionalInfo(new MapiContactProfessionalPropertySet("Briazz", "Psychiatric aide")); | |
contact5.getPhysicalAddresses().getWorkAddress().setAddress("Horner Strasse 12 4421 SAASS"); | |
contact5.getTelephones().setBusinessTelephoneNumber("0650 675 73 30"); | |
contact5.getTelephones().setHomeTelephoneNumber("(661)387-5382"); | |
// Contact #6 | |
MapiContact contact6 = new MapiContact(); | |
contact6.setNameInfo(new MapiContactNamePropertySet("Bertha", "A.", "Buell")); | |
contact6.setProfessionalInfo(new MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant")); | |
contact6.getPersonalInfo().setPersonalHomePage("B2BTies.com"); | |
contact6.getPhysicalAddresses().getWorkAddress().setAddress("Im Astenfeld 59 8580 EDELSCHROTT"); | |
contact6.getElectronicAddresses().setEmail1(new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com")); | |
contact6.setTelephones(new MapiContactTelephonePropertySet("06605045265")); | |
PersonalStorage pst = PersonalStorage.create(dataDir + "MapiContactToPST_out.pst", FileFormatVersion.Unicode); | |
FolderInfo contactFolder = pst.createPredefinedFolder("Contacts", StandardIpmFolder.Contacts); | |
contactFolder.addMapiMessageItem(contact1); | |
contactFolder.addMapiMessageItem(contact2); | |
contactFolder.addMapiMessageItem(contact3); | |
contactFolder.addMapiMessageItem(contact4); | |
contactFolder.addMapiMessageItem(contact5); | |
contactFolder.addMapiMessageItem(contact6); |
Сохранение информации о контактах из файла PST в формате MSG
В этой статье показано, как получить информацию о контакте из файла Microsoft Outlook PST и сохранить контакты на диск в формате MSG. Для этого используйте классы PersonalStorage и MapiContact, чтобы получить и отобразить информацию о контакте.
Чтобы получить информацию о контакте:
- Загрузите файл PST в классе PersonalStorage.
- Просмотрите папку Контакты.
- Получите содержимое папки Контакты, чтобы получить коллекцию сообщений.
- Переберите коллекцию сообщений.
- Вызовите метод PersonalStorage.extractMessage() и затем метод toMapiMessageItem() чтобы получить информацию о контакте в классе MapiContact.
- Используйте свойства MapiContact для доступа к информации о контакте.
- Вызовите метод PersonalStorage.extractMessage() чтобы получить информацию о контакте в классе MapiMessage.
- Вызовите метод MapiMessage.save() для сохранения контакта на диск в формате MSG.
Ниже приведен пример кода, который извлекает всю информацию о контактах из файла PST и сохраняет ее на диск в формате MSG.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java | |
String dataDir = Utils.getSharedDataDir(AccessContactInformationFromPSTFile.class) + "outlook/"; | |
// Load the Outlook PST file | |
PersonalStorage pst = PersonalStorage.fromFile(dataDir + "SampleContacts.pst"); | |
// Get the Contacts folder | |
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts"); | |
// Loop through all the contacts in this folder | |
MessageInfoCollection messageInfoCollection = folderInfo.getContents(); | |
for (int i = 0; i < messageInfoCollection.size(); i++) { | |
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i); | |
// Get the contact information | |
MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem(); | |
// Display some contents on screen | |
System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n"); | |
// Save to disk in MSG format | |
if (contact.getNameInfo().getDisplayName() != null) { | |
MapiMessage message = pst.extractMessage(messageInfo); // Get rid of illegal characters that cannot be used as a file name | |
String messageName = message.getSubject().replace(":", " ").replace("\\", " ").replace("?", " ").replace("/", " "); | |
message.save(dataDir + messageName + ".msg"); | |
} | |
} |
Сохранение информации о контактах из Outlook PST на диск в формате vCard
В этой статье показано, как получить информацию о контакте из файла Microsoft Outlook PST и сохранить контакт на диск в формате vCard (VCF). Она использует классы PersonalStorage и MapiContact для получения информации о контакте.
Ниже приведены шаги для получения информации о контактах:
- Загрузите файл PST в классе PersonalStorage.
- Просмотрите папку Контакты.
- Получите содержимое папки Контакты для получения коллекции сообщений.
- Переберите коллекцию сообщений.
- Вызовите метод PersonalStorage.extractMessage() для получения информации о контакте в классе MapiContact.
- Используйте свойства класса MapiContact для доступа к информации о контакте.
Программа ниже загружает файл PST с диска и сохраняет все контакты в формате vCard (VCF). Файлы VCF затем можно использовать в любой другой программе, которая может загружать стандартные файлы контактов vCard. Если вы откроете любой файл VCF в Microsoft Outlook, он будет выглядеть как на скриншоте ниже.
![]() |
||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Рисунок: vCard, сохраненная с помощью Aspose.Email | ||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|