Compartilhar via


Usando várias contas do Exchange

Aplica-se a: Outlook 2013 | Outlook 2016

Microsoft Outlook 2010 e Microsoft Outlook 2013 dão suporte à integração com várias contas de email de exchange. No Outlook 2010 ou no Outlook 2013, um usuário poderia adicionar duas contas de exchange ao mesmo perfil e ainda desfrutar de recursos avançados do Exchange, como a gal (lista de endereços global) publicada, a configuração do Exchange Out-of-Office e o compartilhamento de pastas.

Aqueles familiarizados com as seções de perfil MAPI do Microsoft Office Outlook 2007 e anteriores sabem que as configurações do Exchange, como o nome do usuário de email e o nome do servidor, são armazenadas na seção Perfil Global do Exchange fixa, pbGlobalProfileSectionGuid. No Outlook 2010 e no Outlook 2013, cada conta do Exchange precisa de sua própria seção de perfil para armazenar configurações, tornando o pbGlobalProfileSectionGuid obsoleto.

As configurações do Outlook 2010 e do Outlook 2013 Exchange ainda estão armazenadas no perfil, mas um identificador exclusivo para a seção de perfil que contém suas configurações é alocado dinamicamente por perfil. O local das configurações do Exchange no perfil é armazenado na Propriedade Canônica PidTagExchangeProfileSectionId, que pode ser encontrada na seção perfil do serviço de mensagem da conta do Exchange. Essa propriedade também pode ser encontrada na seção de perfil para cada provedor neste serviço de mensagem da conta. O identificador exclusivo não é armazenado no servidor e será diferente entre os perfis.

O Outlook 2010 e o Outlook 2013 usam o PidTagExchangeProfileSectionId como um identificador exclusivo para especificar uma conta do Exchange. Quando usado dessa maneira, esse identificador exclusivo é conhecido como emsmdbUID. Para algumas operações MAPI e Outlook, um emsmdbUID pode ser necessário para especificar qual conta do Exchange deve ser usada para a operação.

Para dar suporte a várias contas do Exchange, você deve usar algumas chamadas para novas funções em seu código. Substitua qualquer chamada que use um entryID e IAddrBook::OpenEntry ou IAddrBook::CompareEntryIDs no IMailUser : IMAPIProp e IDistList : IMAPIContainer com uma das seguintes funções.

Suporte herdado

Ainda há suporte para todos os clientes MAPI gravados antes da criação desta nova seção emsmdbUID . Esses clientes continuarão a recuperar a seção global anterior, pbGlobalProfileSectionGuid. As consultas para esta seção de perfil serão redirecionadas para uma conta designada do Exchange que lida com consultas herdadas. A conta que lida com as chamadas herdadas pode ser determinada examinando a tabela do serviço de mensagem e adicionando uma coluna para PR_EMSMDB_LEGACY. Apenas um serviço de mensagem terá esse conjunto como true, e seu PidTagExchangeProfileSectionId é chamado de emsmdbUID herdado.

Observação

Configurações MAPI configuráveis, como o repositório padrão e a conta padrão, não têm efeito sobre qual conta lida com chamadas herdadas. A conta que trata as chamadas herdadas não pode ser configurada.

O emsmdbUID da conta herdada é copiado para a Seção perfil global do Outlook. Se essa propriedade não existir, a consulta para a tabela de serviços de mensagem determinará qual conta é o manipulador herdado e definirá o valor na Seção Perfil Global do Outlook.

Para ficar claro, a seção Perfil Global do Outlook é diferente da Seção Perfil Global do Exchange e, no Outlook 2010 e Outlook 2013, a Seção Perfil Global do Exchange não é mais realmente global porque você pode ter várias contas do Exchange. A seção Perfil Global do Outlook contém propriedades sobre o Outlook, como o estado da MRU da pasta ou o estado da conexão global.

Contextos da conta do catálogo de endereços

Para resolve endereços corretamente com várias contas do Exchange, use as novas funções que usam um contexto de conta para que as chamadas para o catálogo de endereços pesquisem a conta correta do Exchange.

Algumas APIs do catálogo de endereços anteriores foram preteridas porque as APIs não eram totalmente várias do Exchange capazes. Esse contexto de conta geralmente é um emsmdbUID.

Além do emsmdbUID, várias contas do Exchange também têm um emsabpUID.

  1. O valor emsmdbUID identifica o contexto da conta.

  2. O valor emsabpUID identifica um provedor de catálogo de endereços do Exchange.

O valor emsabpUID normalmente é usado ao resolver um destinatário. Ao resolver um destinatário usando IAddrBook::ResolveName, uma linha de destinatário do Exchange contém a propriedade PR_AB_PROVIDERS (0x3D010102), que contém o valor emsabpUID . Esse valor emsabpUID identifica o provedor de catálogo de endereços do Exchange para o destinatário específico.

Se você quiser determinar o valor emsabpUID para um determinado emsmdbUID, abra a seção perfil para o emsmdbUID e obtenha a propriedade PR_EMSABP_USER_UID (0x0x3D1A0102).

Se você estiver chamando IAddrBook::P repareRecips, verifique se os destinatários do Exchange na lista que você passa contêm a propriedade PR_AB_PROVIDERS que tem o emsabpUID que corresponde ao provedor de catálogo de endereços ao qual o destinatário pertence. Chamar IAddrBook::P repareRecips em uma linha obtida de IAddrBook::ResolveName não requer nenhuma ação adicional, mas algum código chamará IAddrBook::P repareRecips em linhas que contêm apenas a propriedade PR_ENTRYID . As linhas nesta e em situações semelhantes devem conter PR_ENTRYID e PR_AB_PROVIDERS com a propriedade PR_AB_PROVIDERS definida como o emsabpUID correto.

Uma descrição simples do processo para resolver várias contas do Exchange é a seguinte:

  • Dado o identificador exclusivo do serviço, seu código examina a tabela do repositório de mensagens da propriedade PR_SERVICE_UID que corresponde à que você tem. A partir daí, você pode determinar o PR_MDB_PROVIDER correto. Esta linha contém o repositório apropriado.

  • Dado um emsmdbUID, seu código examina a tabela de serviços de mensagem para a linha que expõe o PidTagExchangeProfileSectionId que corresponde ao emsmdbUID.

Confira também

HrCompareABEntryIDsWithExchangeContext

HrDoABDetailsWithExchangeContext

HrDoABDetailsWithProviderUID

HrGetGALFromEmsmdbUID

HrOpenABEntryUsingDefaultContext

HrOpenABEntryWithExchangeContext

HrOpenABEntryWithProviderUID

HrOpenABEntryWithProviderUIDSupport

HrOpenABEntryWithResolvedRow

HrOpenABEntryWithSupport

Propriedade canônica PidTagExchangeProfileSectionId

Como abrir a seção Perfil Global