Trabalhando com Contatos em Arquivo PST
Lendo Múltiplos Contatos em Formato VCard
O trecho de código abaixo demonstra como ler um arquivo VCF, verificar se ele contém múltiplos contatos e, se sim, carregar os contatos do arquivo em uma lista de objetos VCardContact. O código utiliza os seguintes métodos:
- isMultiContacts(InputStream stream) - Verifica se o fluxo de origem contém vários contatos.
- loadAsMultiple(String filePath, Charset encoding) - Carrega a lista de contatos de um arquivo de múltiplos contatos.
- loadAsMultiple(InputStream stream, Charset encoding) - Carrega a lista de contatos de um fluxo de múltiplos contatos.
try (InputStream stream = new FileInputStream("test.vcf")) {
if (VCardContact.isMultiContacts(stream)) {
List<VCardContact> contacts = VCardContact.loadAsMultiple(stream, Charset.forName("utf-8"));
}
}
Adicionando Contato ao PST
Criar Novo PST, Adicionar Subpastas e Mensagens mostrou como criar um arquivo PST e adicionar uma subpasta a ele. Com Aspose.Email, você pode adicionar um MapiContact à subpasta Contatos de um arquivo PST que você criou ou carregou. Abaixo estão as etapas para adicionar um MapiContact a um PST:
- Crie um objeto MapiContact.
- Defina as propriedades do MapiContact usando diferentes construtores e métodos.
- Crie um PST usando o método PersonalStorage.create().
- Crie uma pasta pré-definida (Contatos) na raiz do arquivo PST acessando a pasta raiz e, em seguida, chamando o método addMapiMessageItem().
O trecho de código abaixo mostra como criar um MapiContact e, em seguida, adicioná-lo à pasta Contatos de um arquivo PST recém-criado.
// 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); |
Salvar informações de contatos do arquivo PST no formato MSG
Este artigo mostra como acessar informações de contato de um arquivo PST do Microsoft Outlook e salvar contatos no disco no formato MSG. Para fazer isso, use as classes PersonalStorage e MapiContact para obter e exibir as informações de contato.
Para obter as informações de um contato:
- Carregue o arquivo PST na classe PersonalStorage.
- Navegue até a pasta Contatos.
- Obtenha o conteúdo da pasta Contatos para obter a coleção de mensagens.
- Percorra a coleção de mensagens.
- Chame o método PersonalStorage.extractMessage() e, em seguida, o método toMapiMessageItem() para obter as informações de contato na classe MapiContact.
- Use as propriedades do MapiContact para acessar as informações de contato.
- Chame o método PersonalStorage.extractMessage() para obter as informações de contato na classe MapiMessage.
- Chame o método MapiMessage.save() para salvar o contato no disco no formato MSG.
Abaixo está um exemplo de código que recupera todas as informações de contatos do arquivo PST e as salva no disco no formato 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"); | |
} | |
} |
Salvar Informações de Contatos do PST do Outlook no Disco em formato vCard
Este artigo mostra como acessar informações de contato de um arquivo PST do Microsoft Outlook e salvar o contato no disco em formato vCard (VCF). Ele usa as classes PersonalStorage e MapiContact para obter as informações de contato.
Abaixo estão as etapas para obter as informações de contatos:
- Carregue o arquivo PST na classe PersonalStorage.
- Navegue até a pasta Contatos.
- Obtenha o conteúdo da pasta Contatos para obter a coleção de mensagens.
- Percorra a coleção de mensagens.
- Chame o método PersonalStorage.extractMessage() para obter as informações de contato na classe MapiContact.
- Use as propriedades da classe MapiContact para acessar as informações de contato.
O programa abaixo carrega um arquivo PST do disco e salva todos os contatos em formato vCard (VCF). Os arquivos VCF podem ser usados em qualquer outro programa que possa carregar o arquivo de contato padrão vCard. Se você abrir qualquer arquivo VCF no Microsoft Outlook, ele se parecerá com o da captura de tela abaixo.
![]() |
||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Figura: Um vCard salvo com 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
|