Gerenciando Listas de Distribuição do Outlook em Arquivos PST
Uma lista de distribuição é um grupo de contatos que pode ser manipulado por software automatizado, permitindo ao usuário enviar e‑mails para vários destinatários simultaneamente.
A API Aspose.Email for Python permite aos usuários criar, gerenciar e manipular listas de distribuição. Isso inclui criar e salvar membros da lista, ler listas de distribuição, atualizar propriedades da lista e outras operações relacionadas.
Criar e Salvar Listas de Distribuição em Arquivos PST
Adicionar uma Lista de Distribuição com Contatos PST Existentes
O trecho de código abaixo demonstra como criar uma lista de distribuição contendo contatos que já estão armazenados em um arquivo PST.
- Crie um novo arquivo PST usando PersonalStorage.create() com formato UNICODE.
- Crie uma pasta "Contacts" predefinida e adicione duas entradas de contato (Sebastian Wright e Wichert Kroos) a essa pasta.
- Adicionar contatos à lista de distribuição:
- Cada contato é adicionado à lista de distribuição como um MapiDistributionListMember.
- O entry_id de cada membro está vinculado ao contato correspondente no PST usando o strEntryId codificado.
- Crie uma lista de distribuição chamada "Contact list" que inclua os contatos adicionados como membros e adicione-a ao arquivo PST.
import aspose.email as ae
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"
displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"
pst = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
contactFolder = pst.create_predefined_folder("Contacts", ae.storage.pst.StandardIpmFolder.CONTACTS)
strEntryId1 = contactFolder.add_mapi_message_item(ae.mapi.MapiContact(displayName1, email1))
strEntryId2 = contactFolder.add_mapi_message_item(ae.mapi.MapiContact(displayName2, email2))
member1 = ae.mapi.MapiDistributionListMember(displayName1, email1)
member1.entry_id_type = ae.mapi.MapiDistributionListEntryIdType.CONTACT
member1.entry_id = strEntryId1.encode()
member2 = ae.mapi.MapiDistributionListMember(displayName2, email2)
member2.entry_id_type = ae.mapi.MapiDistributionListEntryIdType.CONTACT
member2.entry_id = strEntryId2.encode()
members = ae.mapi.MapiDistributionListMemberCollection()
members.append(member1)
members.append(member2)
distributionList = ae.mapi.MapiDistributionList("Contact list", members)
distributionList.body = "Distribution List Body"
distributionList.subject = "Sample Distribution List using Aspose.Email"
# Add distribution list to PST
contactFolder.add_mapi_message_item(distributionList)
Adicionar uma Lista de Distribuição com Membros Individuais
Membros individuais são adequados quando os contatos não fazem parte da agenda do Outlook, mas ainda precisam ser incluídos na lista de distribuição. O exemplo de código a seguir demonstra como criar uma lista de distribuição com membros individuais — contatos que não estão armazenados no arquivo PST.
- Crie um novo arquivo PST usando PersonalStorage.create() com formato UNICODE.
- Em vez de vincular contatos do PST, defina novas entradas de contato (John R. Patrick e Tilly Bates) diretamente como membros individuais.
- Adicionar os membros individuais a uma lista de distribuição.
- Crie uma lista de distribuição, chamada "Simple list", e adicione-a à pasta "Contacts" no arquivo PST.
import aspose.email as ae
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"
displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"
pst = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)
contact_folder = pst.create_predefined_folder("Contacts", ae.storage.pst.StandardIpmFolder.CONTACTS)
one_off_members = ae.mapi.MapiDistributionListMemberCollection()
one_off_members.append(ae.mapi.MapiDistributionListMember("John R. Patrick", "JohnRPatrick@armyspy.com"))
one_off_members.append(ae.mapi.MapiDistributionListMember("Tilly Bates", "TillyBates@armyspy.com"))
one_off_members_list = ae.mapi.MapiDistributionList("Simple list", one_off_members)
contact_folder.add_mapi_message_item(one_off_members_list)
Ler listas de distribuição de arquivos PST
Para ler uma lista de distribuição de um PST, use o exemplo de código a seguir:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.CONTACTS)
for msg in folder.enumerate_messages():
# Check if the message has the "IPM.DistList" message class
if msg.message_class == "IPM.DistList":
dist_list = pst.extract_message(msg).to_mapi_message_item()
# Now, you can work with the distribution list
# (e.g., access its members, display its properties, or make modifications)
for member in dist_list.members:
print(f"{member.display_name}")
Atualizar Listas de Distribuição em Arquivos PST do Outlook
Para atualizar uma lista de distribuição em um arquivo PST, por exemplo para adicionar um novo membro, use o seguinte exemplo de código:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.CONTACTS)
# add a new member to each distribution list in pst
for msg in folder.enumerate_messages():
# Check if the message has the "IPM.DistList" message class
if msg.message_class == "IPM.DistList":
dist_list = pst.extract_message(msg).to_mapi_message_item()
# Create new member to add
member = ae.mapi.MapiDistributionListMember("Edward R. Manuel", "EdwardRManuel@example.com")
dist_list.members.append(member)
# update DL in PST
folder.update_message(msg.entry_id_string, dist_list)