Gerenciando Contatos em Arquivos PST
Adicionando e Salvando Contatos
Adicionar Contatos ao PST
A seção Criando e Gerenciando Arquivos PST mostra como criar um arquivo PST e adicionar uma subpasta a ele. Com o Aspose.Email você pode adicionar um MapiContact à subpasta Contacts de um arquivo PST que você criou ou carregou. Abaixo estão as etapas para adicionar MapiContact a um PST:
- Crie um MapiContact objeto.
- Defina o Propriedades do MapiContact usando diferentes construtores e métodos.
- Criar um PST usando o PersonalStorage.Create() método.
- Criar uma pasta predefinida (Contatos) na raiz do arquivo PST acessando a pasta raiz e então chamando o AddMapiMessageItem() método.
O trecho de código a seguir mostra como criar um MapiContact e então adicioná-lo à pasta de contatos de um novo arquivo PST.
// Create three Contacts
var contact1 = new MapiContact("Sebastian Wright", "SebastianWright@dayrep.com");
var contact2 = new MapiContact("Wichert Kroos", "WichertKroos@teleworm.us", "Grade A Investment");
var contact3 = new MapiContact("Christoffer van de Meeberg", "ChristoffervandeMeeberg@teleworm.us", "Krauses Sofa Factory", "046-630-4614046-630-4614");
// Contact #4
var contact4 = new MapiContact{NameInfo = new MapiContactNamePropertySet("Margaret", "J.", "Tolle")};
contact4.PersonalInfo.Gender = MapiContactGender.Female;
contact4.ProfessionalInfo = new MapiContactProfessionalPropertySet("Adaptaz", "Recording engineer");
contact4.PhysicalAddresses.WorkAddress.Address = "4 Darwinia Loop EIGHTY MILE BEACH WA 6725";
contact4.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Hisen1988", "SMTP", "MargaretJTolle@dayrep.com");
contact4.Telephones.BusinessTelephoneNumber = "(08)9080-1183";
contact4.Telephones.MobileTelephoneNumber = "(925)599-3355(925)599-3355";
// Contact #5
var contact5 = new MapiContact{NameInfo = new MapiContactNamePropertySet("Matthew", "R.", "Wilcox")};
contact5.PersonalInfo.Gender = MapiContactGender.Male;
contact5.ProfessionalInfo = new MapiContactProfessionalPropertySet("Briazz", "Psychiatric aide");
contact5.PhysicalAddresses.WorkAddress.Address = "Horner Strasse 12 4421 SAASS";
contact5.Telephones.BusinessTelephoneNumber = "0650 675 73 300650 675 73 30";
contact5.Telephones.HomeTelephoneNumber = "(661)387-5382(661)387-5382";
// Contact #6
var contact6 = new MapiContact
{
NameInfo = new MapiContactNamePropertySet("Bertha", "A.", "Buell"),
ProfessionalInfo = new MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant")
};
contact6.PersonalInfo.PersonalHomePage = "B2BTies.com";
contact6.PhysicalAddresses.WorkAddress.Address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact6.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact6.Telephones = new MapiContactTelephonePropertySet("06605045265");
using (PersonalStorage personalStorage = PersonalStorage.Create("SampleContacts_out.pst", FileFormatVersion.Unicode))
{
var contactFolder = personalStorage.CreatePredefinedFolder("Contacts", StandardIpmFolder.Contacts);
contactFolder.AddMapiMessageItem(contact1);
contactFolder.AddMapiMessageItem(contact2);
contactFolder.AddMapiMessageItem(contact3);
contactFolder.AddMapiMessageItem(contact4);
contactFolder.AddMapiMessageItem(contact5);
contactFolder.AddMapiMessageItem(contact6);
}
Salvar Contatos em Formato MSG
Este artigo explica como acessar informações de contato de um arquivo PST do Outlook e salvar o contato no disco em formato MSG. As etapas para obter as informações de contato são:
- Carregar o arquivo PST no PersonalStorage objeto.
- Navegar pela pasta Contatos.
- Obtenha o conteúdo da pasta Contatos percorrendo as mensagens.
- Verifique que o MessageInfo.MessageClass o valor da propriedade corresponde a "IPM.Contact".
- Chame o PersonalStorage.ExtractMessage() método para obter o MapiMessage objeto.
- Chame o método MapiMessage.Save() para salvar o contato no disco em formato MSG.
O trecho de código a seguir mostra como recuperar todas as informações de contato do arquivo PST e salvá‑las no disco no formato MSG.
// Load the Outlook PST file
var pst = PersonalStorage.FromFile("SampleContacts.pst");
// Get the Contacts folder
var contactsFolder = pst.RootFolder.GetSubFolder("Contacts");
// Loop through all the contacts in this folder
foreach (MessageInfo messageInfo in contactsFolder.EnumerateMessages())
{
if (messageInfo.MessageClass == "IPM.Contact")
{
// Get the contact information
var msg = pst.ExtractMessage(messageInfo);
// Save to disk in msg format
string contactName = msg.Subject.Replace(":", " ").Replace("\\", " ").Replace("?", " ").Replace("/", " ");
msg.Save($"{contactName}.msg", SaveOptions.DefaultMsgUnicode);
}
}
Salvar Contatos em Formato VCF
Este artigo mostra como acessar informações de contato de um arquivo PST do Microsoft Outlook e salvar o contato no disco em formato vCard (VCF). Use o PersonalStorage e MapiContact classes para obter informações de contato do arquivo PST. Para obter as informações de contato:
- Carregar o arquivo PST no PersonalStorage classe.
- Navegar pela pasta Contatos.
- Obtenha o conteúdo da pasta Contatos percorrendo as mensagens.
- Verifique que o MessageInfo.MessageClass o valor da propriedade corresponde a "IPM.Contact".
- Chame o PersonalStorage.ExtractMessage() método para obter o MapiMessage objeto.
- Chame o MapiMessage.ToMapiMessageItem() e converta o IMapiMessageItem para MapiContact tipo.
- Chame o MapiContact.Save() método para salvar o contato no disco em formato VCard.
O programa abaixo carrega um arquivo PST do disco e salva todos os contatos no formato vCard (VCF). Os arquivos VCF podem então ser usados em qualquer outro programa que consiga abrir o arquivo de contato vCard padrão. Se você abrir qualquer arquivo VCF no Microsoft Outlook, ele se parece com o da captura de tela abaixo.
![]() |
|---|
O trecho de código a seguir mostra como exportar contatos do Outlook PST para o formato vCard (VCF).
// Load the Outlook PST file
var pst = PersonalStorage.FromFile("SampleContacts.pst");
// Get the Contacts folder
var contactsFolder = pst.RootFolder.GetSubFolder("Contacts");
// Loop through all the contacts in this folder
foreach (MessageInfo messageInfo in contactsFolder.EnumerateMessages())
{
if (messageInfo.MessageClass == "IPM.Contact")
{
// Get the contact information
var msg = pst.ExtractMessage(messageInfo);
var contact = (MapiContact)msg.ToMapiMessageItem();
// Display some contents on screen
Console.WriteLine("Name: " + contact.NameInfo.DisplayName);
// Save to disk in VCard format
string contactName = contact.Subject.Replace(":", " ").Replace("\\", " ").Replace("?", " ").Replace("/", " ");
contact.Save($"{contactName}.vcf", ContactSaveFormat.VCard);
}
}
Veja também: Gerenciando Listas de Distribuição em Arquivos PST
