Trabajando con Contactos de Outlook

Crear, Guardar y Leer Contactos

Al igual que MapiMessage, Aspose.Email te permite crear contactos de Outlook. La clase MapiContact proporciona todas las propiedades relacionadas con el contacto necesarias para crear un contacto de Outlook. Este artículo muestra cómo crear, guardar y leer un contacto de Outlook utilizando la clase MapiContact.

Crear y Guardar un Contacto de Outlook

Para crear un contacto y guardarlo en disco:

  1. Instancia un nuevo objeto de la clase MapiContact.
  2. Ingresa la información de las propiedades del contacto.
  3. Agrega datos de foto (si los hay).
  4. Guarda el contacto en formato MSG o VCard.

El siguiente fragmento de código te muestra cómo crear y guardar un contacto de Outlook.

Guardar Lista de Distribución Mapi en un Solo Archivo VCF de Múltiples Contactos

El siguiente ejemplo de código demuestra cómo guardar una lista de distribución en un archivo VCF de múltiples contactos:

// convierte el objeto `msg` a un objeto `MapiMessage`
var dlist = (MapiDistributionList)msg.ToMapiMessageItem();

//guardar la lista de distribución
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.Save("distribution_list.vcf", options);

Guardar Contacto en Formato VCF Versión 3

Para guardar el contacto en formato VCF versión 3, utiliza el enumerado VCardVersion para establecer la propiedad VCardSaveOptions.Version. El siguiente código de ejemplo demuestra el uso del enumerado VCardVersion para guardar el contacto en formato VCF versión 3:


Leer un MapiContact

La clase MapiContact se puede utilizar para cargar tanto contactos de Outlook en formato MSG como VCard. El siguiente fragmento de código te muestra cómo cargar contactos de Outlook guardados como MSG y VCF en un MapiContact.

Cargar un Contacto desde MSG

El siguiente fragmento de código muestra cómo cargar contactos desde MSG.

Cargar un Contacto desde VCard

El siguiente fragmento de código muestra cómo cargar contactos desde VCard.

Cargar un Contacto desde VCard con Codificación Especificada

El siguiente fragmento de código muestra cómo cargar contactos desde VCard con la codificación especificada.

Guardar Elementos de Contacto VCard con Codificación Especificada

Personaliza el comportamiento de guardado al trabajar con archivos VCard utilizando la clase VCardSaveOptions. La propiedad PreferredTextEncoding de la clase especificará la codificación que se utilizará al guardar elementos de contacto VCard.

El siguiente ejemplo de código muestra cómo implementar esta propiedad en tu proyecto:

var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);

Guardar Archivos VCard con Campos Extendidos

La propiedad UseExtensions te permite controlar si se pueden utilizar campos extendidos al guardar archivos vCard. Cuando se establece en verdadero (valor predeterminado), se permiten extensiones, proporcionando compatibilidad con campos personalizados y información adicional del contacto.

Leer Múltiples Contactos en Formato VCard

Nuestra biblioteca hace posible obtener la lista de todos los contactos de un VCard. Esto se puede hacer utilizando los siguientes métodos y pasos:

// Verifica si la secuencia de origen del VCard contiene múltiples contactos.
VCardContact.IsMultiContacts(Stream stream)

// Carga la lista de todos los contactos desde el archivo VCard.
VCardContact.LoadAsMultiple(string filePath, Encoding encoding)

// Carga la lista de todos los contactos desde la secuencia VCard.
VCardContact.LoadAsMultiple(Stream stream, Encoding encoding)

El siguiente fragmento de código demuestra cómo manejar archivos VCard que contienen múltiples contactos:

using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
    if(VCardContact.IsMultiContacts(stream))
    {
        List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
    }
}

Renderizar Información del Contacto en MHTML

El contacto de Outlook se puede convertir a MHTML utilizando la API de Aspose.Email. Este ejemplo muestra cómo se carga un VCard en MapiContact y luego se convierte a MHTML con la ayuda de la API de MailMessage.