Class MapiContact

MapiContact class

Represents a MAPI contact item.

public sealed class MapiContact : MapiMessageItemBase

Constructors

NameDescription
MapiContact()Initializes a new instance of the MapiContact class.
MapiContact(string, string)Initializes a new instance of the MapiContact class with the specified details.
MapiContact(string, string, string)Initializes a new instance of the MapiContact class with the specified details.
MapiContact(string, string, string, string)Initializes a new instance of the MapiContact class with the specified details.

Properties

NameDescription
Attachments { get; }Gets the attachments of the contact.
Billing { get; set; }Gets or sets the billing information of the item.
Body { get; set; }Gets or sets the plain-text body of the item.
BodyHtml { get; }Gets the body of the item as HTML, converted from BodyRtf; an empty string when there is no RTF body.
BodyRtf { get; set; }Gets or sets the body of the item in RTF format.
BodyType { get; }Gets the format of the body: plain text, HTML or RTF.
Categories { get; set; }Gets or sets the categories of the item.
virtual CodePage { get; }Gets the code page of the ANSI strings of the object.
Companies { get; set; }Gets or sets the names of the companies associated with the item.
ElectronicAddresses { get; set; }Gets or sets the e-mail addresses (up to three) and fax numbers (up to three) of the contact.
Events { get; set; }Gets or sets the dates associated with the contact: birthday and anniversary.
virtual ItemId { get; }Gets the identifier of the item on the mail server, for items obtained from a server; null otherwise.
MessageClass { get; set; }Gets or sets the message class of the item, such as IPM.Note for an e-mail message. The class determines the type of the item.
Mileage { get; set; }Gets or sets the mileage information of the item.
NamedProperties { get; }Gets the named properties of the item.
NamedPropertyMapping { get; }Gets the mapping between the named properties and the tags they are stored under.
NameInfo { get; set; }Gets or sets the name of the contact: given name, surname, title and so on.
OtherFields { get; set; }Gets or sets the other fields of the contact: reminder, privacy, journaling and the user-defined fields.
PersonalInfo { get; set; }Gets or sets the personal details of the contact, such as web pages, spouse, children, hobbies and notes.
Photo { get; set; }Gets or sets the photo of the contact.
PhysicalAddresses { get; set; }Gets or sets the postal addresses of the contact: home, work and other. One of them can be marked as the mailing address.
ProductId { get; set; }Gets or sets the identifier of the product that created the contact.
ProfessionalInfo { get; set; }Gets or sets the professional details of the contact: company, job title, department, manager and so on.
virtual Properties { get; }Gets all properties of the object.
PropertyStream { get; }Gets the property stream of the item.
Recipients { get; set; }Gets or sets the recipients of the item.
Sensitivity { get; set; }Gets or sets the sensitivity of the item: normal, personal, private or confidential.
Subject { get; set; }Gets or sets the subject of the message.
SubjectPrefix { get; }Gets the prefix of the subject, such as RE: or FW: .
SubStorages { get; }Gets the sub-storages of the item.
SupportedType { get; }Gets the type of the item, as determined by its message class.
Telephones { get; set; }Gets or sets the telephone numbers of the contact.

Methods

NameDescription
static FromVCard(Stream)Loads a contact from a stream that contains a vCard. vCard versions 2.1 and 3.0 are supported.
static FromVCard(string)Loads a contact from a vCard file. vCard versions 2.1 and 3.0 are supported.
static FromVCard(Stream, VCardLoadOptions)Loads a contact from a stream that contains a vCard. vCard versions 2.1 and 3.0 are supported.
static FromVCard(string, VCardLoadOptions)Loads a contact from a vCard file. vCard versions 2.1 and 3.0 are supported.
static Load(Stream)Loads a MapiContact from the specified stream.
static Load(string)Loads a MapiContact from the specified file.
virtual Dispose()Releases the resources used by the item.
override GetProperty(PropertyDescriptor)Gets a MAPI property of the item by its descriptor.
GetPropertyBoolean(long)Gets the value of a property as a Boolean.
GetPropertyBytes(long)Gets the value of a property as bytes.
GetPropertyDateTime(long)Gets the value of a property as a date and time.
GetPropertyInt32(long)Gets the value of a property as a 32-bit integer.
GetPropertyLong(long)Gets the value of a property as a 64-bit integer.
GetPropertyShort(long)Gets the value of a property as a 16-bit integer.
GetPropertyString(long)Gets the value of a property as a string.
GetPropertyString(long, int)Gets the value of a property as a string, decoding an ANSI string with the specified code page.
GetUnderlyingMessage()Retrieves the underlying MapiMessage object.
IsStoreUnicodeOk()Determines whether the string properties of the object are stored in Unicode.
RemoveProperty(long)Removes a property from the item, including its named-property mapping.
Save(Stream)Saves the contact to a stream in vCard 2.1 format.
Save(string)Saves the contact to a vCard 2.1 file.
Save(Stream, ContactSaveFormat)Saves the contact to a stream in the specified format with the default options.
Save(Stream, ContactSaveOptions)Saves the contact to a stream with the specified options.
Save(string, ContactSaveFormat)Saves the contact to a file in the specified format with the default options.
Save(string, ContactSaveOptions)Saves the contact to a file with the specified options.
SaveAsync(Stream, CancellationToken)Saves this MapiContact to the given stream asynchronously. The supported save format is vCard.
SaveAsync(string, CancellationToken)Saves this MapiContact to the vCard file with a default options asynchronously. The supported vCard version is 2.1
SaveAsync(Stream, ContactSaveFormat, CancellationToken)Saves this MapiContact into the given stream with vCard format asynchronously. The supported vCard version is 2.1
SaveAsync(Stream, ContactSaveOptions, CancellationToken)Saves this MapiContact to the given stream using specified save options asynchronously. The supported save options is VCardSaveOptions
SaveAsync(string, ContactSaveFormat, CancellationToken)Saves this MapiContact to the specified file with a format using the default options asynchronously. The supported save format is vCard.
SaveAsync(string, ContactSaveOptions, CancellationToken)Saves this MapiContact into file using specified save options asynchronously. The supported save options is VCardSaveOptions
override SetBodyContent(string, BodyContentType)Sets the content of the body.
virtual SetBodyContent(string, BodyContentType, bool)Sets the body of the item in the specified format, optionally compressing it.
SetBodyRtf(string, bool)Sets the body of the item in RTF format, optionally compressing it.
SetMessageFlags(MapiMessageFlags)Sets the flags of the message, such as read or unsent.
virtual SetProperty(MapiProperty)Adds the property, or replaces the property with the same tag.
override SetProperty(PropertyDescriptor, object)Sets the value of a MAPI property of the item.
TryGetPropertyData(long)Gets the value of a property as bytes.
TryGetPropertyDateTime(long, ref DateTime)Gets the value of a property as a date and time, if the property exists.
TryGetPropertyInt32(long, ref int)Gets the value of a property as a 32-bit integer, if the property exists.
TryGetPropertyLong(long, ref long)Gets the value of a property as a 64-bit integer, if the property exists.
TryGetPropertyString(long)Gets the value of a property as a string.
TryGetPropertyString(long, int)Gets the value of a property as a string, decoding an ANSI string with the specified code page.
TryGetPropertyString(long, ref string)Gets the value of a property as a string, if the property exists.
TryGetPropertyString(long, ref string, int)Gets the value of a property as a string, if the property exists, decoding an ANSI string with the specified code page.
static FromVCardAsync(Stream, CancellationToken)Reads MapiContact from the specified stream containing vCard asynchronously. The supported vCard versions are 2.1 and 3.0
static FromVCardAsync(string, CancellationToken)Reads MapiContact from the specified vCard file asynchronously. The supported vCard versions are 2.1 and 3.0
static FromVCardAsync(Stream, VCardLoadOptions, CancellationToken)Reads MapiContact from the specified stream containing vCard asynchronously. The supported vCard versions are 2.1 and 3.0
static FromVCardAsync(string, VCardLoadOptions, CancellationToken)Reads MapiContact from the specified vCard file asynchronously. The supported vCard versions are 2.1 and 3.0
static LoadAsync(Stream, CancellationToken)Loads a MapiContact from the specified stream asynchronously.
static LoadAsync(string, CancellationToken)Loads a MapiContact from the specified file asynchronously.

Remarks

This class serves as a wrapper for MapiMessage to simplify the process of handling contact information from MAPI properties. It provides a more intuitive interface for accessing and manipulating contact data within the MAPI message.

Examples

The following exmaple demonstrates how to get MapiContact object from MapiMessage.

[C#]

var msg = MapiMessage.Load("contact.msg");

// Check if the loaded message is a supported contact type
if (msg.SupportedType == MapiItemType.Contact)
{
    // Convert the MAPI message to a MapiContact object
    var mapiContact = (MapiContact)msg.ToMapiMessageItem();
    
    // Display some contact info
    Console.WriteLine(mapiContact.NameInfo.DisplayName);
    Console.WriteLine(mapiContact.ElectronicAddresses.Email1.EmailAddress);
}

[Visual Basic]

Dim msg = MapiMessage.Load("contact.msg")

' Check if the loaded message is a supported contact type
If msg.SupportedType = MapiItemType.Contact Then
    ' Convert the MAPI message to a MapiContact object
    Dim mapiContact = DirectCast(msg.ToMapiMessageItem(), MapiContact)
    
    ' Display some contact info
    Console.WriteLine(mapiContact.NameInfo.DisplayName)
    Console.WriteLine(mapiContact.ElectronicAddresses.Email1.EmailAddress)
End If

See Also