Trabajando con Contactos en Archivo PST
Leyendo Múltiples Contactos en Formato VCard
El siguiente ejemplo de código demuestra cómo leer un archivo VCF, verificar si contiene múltiples contactos, y si es así, cargar los contactos del archivo en una lista de objetos VCardContact. El código utiliza los siguientes métodos:
- isMultiContacts(InputStream stream) - Verifica si la fuente de flujo contiene múltiples contactos.
- loadAsMultiple(String filePath, Charset encoding) - Carga la lista de contactos desde un archivo de múltiples contactos.
- loadAsMultiple(InputStream stream, Charset encoding) - Carga la lista de contactos desde un flujo de múltiples contactos.
try (InputStream stream = new FileInputStream("test.vcf")) {
if (VCardContact.isMultiContacts(stream)) {
List<VCardContact> contacts = VCardContact.loadAsMultiple(stream, Charset.forName("utf-8"));
}
}
Agregando Contacto a PST
Crear Nuevo PST, Agregar Subcarpetas y Mensajes mostró cómo crear un archivo PST y agregarle una subcarpeta. Con Aspose.Email puedes agregar un MapiContact a la subcarpeta de Contactos de un archivo PST que hayas creado o cargado. A continuación se detallan los pasos para agregar un MapiContact a un PST:
- Crear un objeto MapiContact.
- Establecer las propiedades del MapiContact utilizando diferentes constructores y métodos.
- Crear un PST usando el método PersonalStorage.create().
- Crear una carpeta predefinida (Contactos) en la raíz del archivo PST accediendo a la carpeta raíz y luego llamando al método addMapiMessageItem().
El fragmento de código a continuación muestra cómo crear un MapiContact y luego agregarlo a la carpeta de Contactos de un archivo PST recién creado.
// 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); |
Guardar información de contactos desde archivo PST en formato MSG
Este artículo muestra cómo acceder a la información de contactos desde un archivo PST de Microsoft Outlook y guardar los contactos en el disco en formato MSG. Para ello, utiliza las clases PersonalStorage y MapiContact para obtener y mostrar la información de contacto.
Para obtener la información de un contacto:
- Cargar el archivo PST en la clase PersonalStorage.
- Navegar por la carpeta de Contactos.
- Obtener el contenido de la carpeta de Contactos para obtener la colección de mensajes.
- Recorrer la colección de mensajes.
- Llamar al método PersonalStorage.extractMessage() y luego al método toMapiMessageItem() para obtener la información de contacto en la clase MapiContact.
- Usar las propiedades de MapiContact para acceder a la información de contacto.
- Llamar al método PersonalStorage.extractMessage() para obtener la información de contacto en la clase MapiMessage.
- Llamar al método MapiMessage.save() para guardar el contacto en el disco en formato MSG.
A continuación se presenta un código de muestra que recupera toda la información de los contactos del archivo PST y la guarda en el disco en 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"); | |
} | |
} |
Guardar Información de Contactos desde Outlook PST en Disco en formato vCard
Este artículo muestra cómo acceder a la información de contactos desde un archivo PST de Microsoft Outlook y guardar el contacto en disco en formato vCard (VCF). Utiliza las clases PersonalStorage y MapiContact para obtener la información de contacto.
A continuación se detallan los pasos para obtener la información de los contactos:
- Cargar el archivo PST en la clase PersonalStorage.
- Navegar por la carpeta de Contactos.
- Obtener el contenido de la carpeta de Contactos para obtener la colección de mensajes.
- Recorrer la colección de mensajes.
- Llamar al método PersonalStorage.extractMessage() para obtener la información de contacto en la clase MapiContact.
- Usar las propiedades de la clase MapiContact para acceder a la información de contacto.
El programa a continuación carga un archivo PST desde el disco y guarda todos los contactos en formato vCard (VCF). Los archivos VCF pueden ser utilizados en cualquier otro programa que pueda cargar el archivo de contacto estándar vCard. Si abres cualquier archivo VCF en Microsoft Outlook, se verá como el de la captura de pantalla a continuación.
![]() |
||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Figura: Un vCard guardado con 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
|