Working with Outlook Contacts
Create Outlook Contact
Aspose.Email for Java supports creating Outlook contacts (VCards) using the MapiContact class. MapiContact contains many methods some of which are given below.
- MapiContactElectronicAddressPropertySet contains a set of MapiContactElectronicAddress.
- MapiContactEventPropertySet
- MapiContactNamePropertySet
- MapiContactPersonalInfoPropertySet
- MapiContactPhysicalAddressPropertySet contains a set of MapiContactPhysicalAddress.
- MapiContactProfessionalPropertySet
- MapiContactTelephonePropertySet
Contact Structure in Aspose.Email for Java
Below is the hierarchy implemented for contacts in Aspose.Email for Java. The relevant class name is given against each property. Hyperlinks are provided to the online documentation for further reference.
- Contact (MapiContact)
- Electronic Addresses (MapiContactElectronicAddressPropertySet)
- Email1 (MapiContactElectronicAddress)
- Address Type
- Display Name
- Email Address
- Fax Number
- Email2
- Email3
- Home Fax
- Primary Fax
- Business Fax
- Email1 (MapiContactElectronicAddress)
- Events (MapiContactEventPropertySet)
See below for an example of how to set events.
- Birthday
- Wedding Anniversary
- Name Info (MapiContactNamePropertySet)
- Display Name
- Display Name Prefix
- File Under
- File Under ID
- Generation
- Given Name
- Initials
- Middle Name
- Nick Name
- Surname
- Personal Info (MapiContactPersonalInfoPropertySet)
- Account
- Business Home Page
- Computer Network Name
- Customer ID
- Free Business Location
- FTP Site
- Gender
- Government ID Number
- Hobbies
- HTML
- Instant Messaging Address
- Language
- Location
- Notes
- Organizational ID Number
- Personal Home Page
- Referred by Name
- Spouse Name
- Physical Address (MapiContactPhysicalAddressPropertySet)
- Home Address (MapiContactPhysicalAddress)
- Address
- City
- Country
- Country Code
- Postal Code
- Post Office Box
- State Or Province
- Other Address
- Work Address
- Home Address (MapiContactPhysicalAddress)
- Professional Info
- Assistant
- Company Name
- Depart Name
- Manager Name
- Office Location
- Profession
- Title
- Telephones (MapiContactTelephonePropertySet)
- Assistant Telephone Number
- Business2 Telephone Number
- Business Telephone Number
- Callback Telephone Number
- Car Telephone Number
- Company Main Telephone Number
- Home2 Telephone Number
- Home Telephone Number
- ISDN Number
- Mobile Telephone Number
- Other Telephone Number
- Pager Telephone Number
- Primary Telephone Number
- Radio Telephone Number
- Telex Number
- TTY/TDD Phone Number
- Electronic Addresses (MapiContactElectronicAddressPropertySet)
The following code uses Aspose.Email to create an Outlook contact and fills it with name, professional properties, physical address, and email. It also shows adding MapiContactEventPropertySet to the contact.
![]() |
|---|
| Figure: A Microsoft Outlook contact coded in with Aspose.Email |
Adding Contact Event Information to a MapiContact
Microsoft Outlook lets users add event information to a contact. The event holds the birthday and wedding anniversary. Aspose.Email provides the MapiContactEventPropertySet class for adding this information to a contact. This is elaborated in the following example.
Creating, Saving and Reading Outlook Contacts
Aspose.Email allows developers to create Microsoft Outlook contacts as well as email messages. The MapiContact class provides all contact properties required to create an Outlook contact. This article shows how to create, save and read an Outlook contact using the MapiContact class.
Create and Save a MapiContact
The following steps can be used to create and save a contact to disc:
- Instantiate a new object of the MapiContact class.
- Enter information related to various properties of the contact.
- Add photo data to the contact, if any.
- Save the contact as MSG or VCard format.
Save Contact in Version 3 VCF Format
To save the contact in version 3 VCF format, use the VCardVersion enumerable to set the VCardSaveOptions.Version property. The following sample code demonstrates the use of VCardVersion enumerable to save the contact VCF version 3 format.
Read a MapiContact
The MapiContact class can be used to load both Microsoft Outlook MSG files as well as VCard format contacts. The following code samples show how to load Outlook contacts saved as MSG and VCF into MapiContact.
Load a Contact from MSG
Load a contact from VCard
The following code shows how to create a MapiContact by loading data from a VCard file using VCardLoadOptions:
MapiContact mapiContact = MapiContact.fromVCard("contact.vcf", new VCardLoadOptions());
System.out.println(mapiContact.getNameInfo().getDisplayName());
Load VCard Contact with specified Encoding
Supported Method: MapiContact.fromVCard(String, Encoding)
Load MAPI Contacts from vCard with Custom Options
To provide more flexibility when converting vCard (.vcf) files into MAPI contacts, Aspose.Email for Java provides the MapiContact.fromVCard(String filePath, VCardLoadOptions options) overload. It offers improved control over how vCard files are interpreted — especially when working with different vCard formats, encodings, or advanced parsing scenarios.
The loaded contact can then be used within PST files, MSG export, or other Outlook-compatible formats.
MapiContact mapiContact = MapiContact.fromVCard("contact.vcf", new VCardLoadOptions());
System.out.println(mapiContact.getNameInfo().getDisplayName());
Save VCard Files with Extended Fields
The UseExtensions property of VCardSaveOptions allows you to control whether extended (X-) fields may be used when saving vCard files. When set to true (the default), extensions are permitted, providing compatibility with custom fields and additional contact information.
The following code sample shows how to disable the extended fields when saving a contact:
MapiContact contact = MapiContact.fromVCard("contact.vcf");
VCardSaveOptions options = new VCardSaveOptions();
options.setUseExtensions(false);
contact.save("contact_out.vcf", options);
Convert Multi-Contact VCF Files to MapiDistributionList
Aspose.Email supports the conversion of multi-contact VCF files into MapiDistributionList objects, making it easy to manage and import multiple contacts directly into your applications. This feature is accessible through the following static methods of the MapiDistributionList class:
static MapiDistributionList fromVCF(String filePath)static MapiDistributionList fromVCF(InputStream stream)
The code sample below demonstrates how to use this feature:
// Convert a multi-contact VCF file into a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.fromVCF("contacts.vcf");
System.out.println(dlist.getDisplayName() + ": " + dlist.getMembers().size() + " member(s)");
The resulting distribution list can be written back to a VCF file in the required vCard version:
MapiDistributionList dlist = MapiDistributionList.fromVCF("contacts.vcf");
MapiDistributionListSaveOptions options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.setVersion(VCardVersion.V30);
dlist.save("distribution_list.vcf", options);
Working with vCard Files Directly
When your source and target are vCard files and you do not need Outlook/MAPI features, use the VCardContact class instead of MapiContact. It reads and writes VCF directly, supports vCard 2.1/3.0/4.0 and multiple contacts per file. See Working with vCard (VCF) Files for a detailed description of the vCard object model.
Rendering Contact Information to MHTML
Outlook Contact can be converted to MHTML using Aspose.Email API. This example shows how a VCard is loaded into MapiContact and then converted to MHTML with the help of MailMessage API.
