Gerenciando contatos do Outlook em arquivos PST
Criando, salvando e lendo contatos
Aspose.Email permite criar e processar contatos do Outlook. O MapiContact classe fornece todas as propriedades relacionadas a contatos necessárias para criar e manipular um contato do Outlook. Este artigo mostra como criar, salvar e ler um contato do Outlook usando o MapiContact classe.
Criar e salvar contatos do Outlook
Para criar um contato e salvá‑lo em disco, siga estes passos:
- Instancie um novo objeto da MapiContact classe.
- Inserir informações das propriedades do contato.
- Adicionar dados de foto (se houver).
- Salve o contato no formato MSG ou VCard.
O trecho de código a seguir mostra como criar e salvar um contato do Outlook:
import aspose.email as ae
data_dir = "path/to/data/directory"
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
contact.professional_info = ae.mapi.MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant")
contact.personal_info.personal_home_page = "B2BTies.com"
contact.physical_addresses.work_address.address = "Im Astenfeld 59 8580 EDELSCHROTT"
contact.electronic_addresses.email1 = ae.mapi.MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com")
contact.telephones = ae.mapi.MapiContactTelephonePropertySet("06605045265")
contact.personal_info.children = ["child1", "child2", "child3"]
contact.categories = ["category1", "category2", "category3"]
contact.mileage = "Some test mileage"
contact.billing = "Test billing information"
contact.other_fields.journal = True
contact.other_fields.private = True
contact.other_fields.reminder_topic = "Test topic"
contact.other_fields.user_field1 = "ContactUserField1"
contact.other_fields.user_field2 = "ContactUserField2"
contact.other_fields.user_field3 = "ContactUserField3"
contact.other_fields.user_field4 = "ContactUserField4"
# Add a photo
with open(data_dir + "Desert.jpg", "rb") as file:
buffer = file.read()
contact.photo = ae.mapi.MapiContactPhoto(buffer, ae.mapi.MapiContactPhotoImageFormat.JPEG)
# Save the Contact in MSG format
contact.save(data_dir + "MapiContact_out.msg", ae.mapi.ContactSaveFormat.MSG)
# Save the Contact in VCF format
contact.save(data_dir + "MapiContact_out.vcf", ae.mapi.ContactSaveFormat.V_CARD)
Salvar contatos no formato VCF Versão 3
Para salvar um contato no formato VCF Versão 3, use a propriedade version do VCardSaveOptions classe.
- Crie uma nova instância da VCardSaveOptions classe.
- Defina a propriedade version do objeto VCardSaveOptions para VCardVersion.V30. Isto define a versão do vCard para 3.0.
- Chame o salvar método do objeto MapiContact, passando o nome do arquivo "contact.vcf" e o objeto VCardSaveOptions como parâmetros. Isto salva o contato como um arquivo vCard com o nome e opções especificados.
O trecho de código a seguir mostra como salvar um contato no formato VCF Versão 3:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.version = ae.personalinfo.vcard.VCardVersion.V30
contact.save("contact.vcf", options)
Carregar contatos de arquivos MSG ou VCard
O MapiContact classe que pode ser usada para carregar contatos nos formatos Outlook MSG e VCard.
Para carregar um contato de MSG, use o exemplo de código abaixo:
Para carregar um contato de VCard, use o exemplo de código a seguir:
Carregar contatos com codificação especificada
O trecho de código a seguir mostra como carregar um contato de vCard com a codificação especificada.
Salvar arquivos VCard com codificação de caracteres personalizada
Ao salvar um arquivo vCard, você pode definir a codificação de caracteres para garantir compatibilidade com caracteres não‑ASCII. Por exemplo, definindo a propriedade preferred_text_encoding do VCardSaveOptions objeto para "utf-8" garante a codificação correta de texto não‑ASCII. Esse recurso é particularmente útil para lidar com dados de contato multilingues. Abaixo está um exemplo de como configurar e salvar um arquivo vCard com codificação de caracteres personalizada:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.preferred_text_encoding = "utf-8"
contact.save("contact.vcf", options)
Salvar arquivos VCard com propriedades estendidas
Além dos campos padrão do vCard, você pode aprimorar seus arquivos vCard incluindo propriedades estendidas. Estes são atributos adicionais não cobertos pela especificação padrão do vCard, permitindo maior personalização. Para habilitar isso, defina a propriedade use_extensions do VCardSaveOptions classe para True. Isso é particularmente útil para adicionar metadados personalizados ou específicos da aplicação. Veja como salvar um arquivo vCard com propriedades estendidas habilitadas:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)
Ler múltiplos contatos no formato VCard
Para recuperar todos os contatos de um VCard, você pode usar o seguinte métodos:
- Método is_multi_contacts determina se um fluxo tem múltiplos contatos.
- Método load_as_multiple(file_path) carrega uma lista de todos os contatos de um arquivo VCard.
- Método load_as_multiple(stream) carrega uma lista de todos os contatos de um fluxo VCard.
O trecho de código abaixo demonstra o processo de leitura de múltiplos contatos de um arquivo VCard:
import aspose.email as ae
contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)
if ae.personalinfo.vcard.VCardContact.is_multi_contacts("contact.vcf"):
ae.personalinfo.vcard.VCardContact.load_as_multiple("contact.vcf")
Renderizar informações de contato para MHTML
Contato do Outlook pode ser convertido para MHTML usando a API Aspose.Email. O exemplo de código a seguir demonstra como gerar um arquivo MHTML que contém informações detalhadas de contato originárias de um arquivo MSG:
- Carregar o arquivo MSG como um MapiMessage objeto.
- Converter a mensagem para o formato EML.
- Preparar opções de salvamento MHT:
- Habilitar codificação do conteúdo do corpo e preservar limites originais.
- Definir opções de formato MHT para escrever cabeçalhos e renderizar informações vCard.
- Definir campos a renderizar no MHT.
- Salvar o EML como um arquivo MHTML.