Perfis MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Um perfil armazena informações sobre provedores de serviços e serviços de mensagens instalados em um computador. Para cada sessão, um cliente no momento do logon seleciona um perfil que descreve os provedores e serviços a serem usados. Um cliente pode escolher entre uma coleção de perfis e, se desejar, estabelecer um como padrão. O perfil padrão é o perfil selecionado automaticamente quando um cliente inicia uma sessão e não especificou explicitamente um perfil.

Também nesses tópicos, você encontrará uma discussão sobre o cache de apelidos, que é armazenado em um fluxo binário.

Seções do Perfil

Os perfis são divididos em seções que os clientes e provedores de serviços acessam para exibir as propriedades do perfil aos usuários ou para fazer alterações de configuração. Uma seção de perfil é um objeto MAPI que implementa a interface IProfSect , uma interface que deriva de IMAPIProp e não tem métodos adicionais. Para obter mais informações, consulte IProfSect : IMAPIProp. Sua única finalidade é manipular as propriedades de uma seção de perfil. Para recuperar um ponteiro IProfSect para uma seção de perfil específica, clientes e provedores de serviços chamam os métodos a seguir.

Propriedade Valor
Os clientes podem chamar:
IMAPISession::OpenProfileSection
Os provedores de serviços podem chamar:
IMAPISupport::OpenProfileSection
Clientes ou provedores podem chamar:
IProviderAdmin::OpenProfileSection

Os perfis são organizados hierarquicamente de forma muito semelhante ao MAPISVC. arquivo INF. Na parte superior da hierarquia, há seções de perfil que contêm informações relevantes para o perfil. O nível intermediário inclui seções que contêm informações sobre um determinado serviço de mensagens e o nível inferior inclui seções que contêm informações sobre um dos provedores de serviços em um serviço de mensagens.

Cada perfil tem várias propriedades necessárias que são armazenadas em uma ou mais das seções do perfil. Por exemplo, cada perfil tem as propriedades PR_PROFILE_NAME (PidTagProfileName) e PR_SEARCH_KEY (PidTagSearchKey). A chave de pesquisa de um perfil é definida com o valor definido no MAPIGUID. H como MUID_PROFILE_INSTANCE e é sempre garantido que seja único entre todos os perfis. Embora dois perfis possam ter o mesmo nome, eles não podem ter a mesma chave de pesquisa. As chaves de pesquisa devem ser tratadas como dados binários, e não como dados de qualquer tipo específico.

Os provedores de repositório de mensagens devem incluir a propriedade PR_DISPLAY_NAME (PidTagDisplayName) do repositório de mensagens nas seções de perfil do perfil e do provedor de repositório de mensagens e manter essas entradas sincronizadas. Quando um repositório de mensagens é criado, o provedor define PR_DISPLAY_NAME com base no valor armazenado nessas seções de perfil.

Há duas diferenças principais entre as seções de perfil e outros objetos que herdam de IMAPIProp:

  • As seções de perfil não dão suporte a transações.

  • As seções de perfil não dão suporte a propriedades nomeadas, retornando MAPI_E_NO_SUPPORT de suas implementações IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs . Para obter mais informações, consulte IMAPIProp::GetIDsFromNames e IMAPIProp::GetNamesFromIDs.

Como as seções de perfil não dão suporte a transações, todas as alterações feitas com chamadas para IMAPIProp::CopyProps, CopyTo ou SetProps entram em vigor imediatamente. Para obter mais informações, consulte IMAPIProp::CopyProps. Clientes e provedores de serviços podem chamar o método IMAPIProp::SaveChanges de uma seção de perfil e ele terá êxito, mas não afetará os dados da seção de perfil. Para obter mais informações, consulte IMAPIProp::SaveChanges. As alterações que ocorrem imediatamente pode afetar a forma como os provedores de serviços implementam as folhas de propriedades que os clientes usam para exibir as propriedades de perfil aos usuários. Os provedores de serviços que desejam que os usuários possam adiar ou desfazer alterações devem implementar suas folhas de propriedades com cópias das seções de perfil em vez das seções reais. Usando cópias, os usuários podem fazer alterações e depois cancelá-las, deixando as seções do perfil original inalteradas.

A ordem na qual as informações aparecem em um perfil afeta como MAPI configura recursos e faz atribuições em uma sessão. As seguintes atribuições são afetadas pela ordem do perfil:

  • Repositório de mensagens padrão

  • Catálogo particular de endereços

  • Caminho de pesquisa do repositório de mensagens padrão

  • Caminho de pesquisa padrão do catálogo de endereços

  • Pedido do provedor de transporte

O MAPI define o repositório de mensagens padrão para ser o primeiro repositório de mensagens no perfil que tem o sinalizador STATUS_DEFAULT_STORE definido em sua propriedade PR_RESOURCE_FLAGS (PidTagResourceFlags), que indica que ele pode ser o repositório padrão. Os clientes podem substituir essa configuração chamando IMAPISession::SetDefaultStore. Para obter mais informações, consulte IMAPISession::SetDefaultStore.

O MAPI cria uma ordem de transporte para lidar com mensagens de entrada e saída. Quando mais de um provedor de transporte se registra para uma mensagem de um tipo específico, o MAPI usa essa ordem para determinar qual provedor deve manipular a mensagem. O MAPI define a ordem de transporte como a ordem na qual os provedores de transporte foram adicionados ao perfil, com uma exceção: os transportes que definem o sinalizador STATUS_XP_PREFER_LAST em sua propriedade PR_RESOURCE_FLAGS são posicionados por último na ordem. Os clientes podem definir a ordem de transporte chamando IMsgServiceAdmin::MsgServiceTransportOrder. Para obter mais informações, consulte IMsgServiceAdmin::MsgServiceTransportOrder.

Às vezes, essas diretrizes para solicitar provedores de serviços e serviços de mensagens podem entrar em conflito. Se houver um conflito, o código deverá resolver o conflito. Você pode usar o programa do Painel de Controle de Email para inspecionar um perfil criado para determinar se os provedores foram configurados conforme o esperado.