Share via


Fazer logon no MAPI

Aplica-se a: Outlook 2013 | Outlook 2016

Os aplicativos cliente fazem logon no subsistema MAPI chamando a função MAPILogonEx . Para obter mais informações, consulte MAPILogonEx. MAPILogonEx valida a seleção de perfil e a configuração de cada provedor de serviços no perfil. Depois de configurado, o MAPI inicia os provedores de catálogo de endereços antes de iniciar os provedores do repositório de mensagens. Os provedores de transporte são iniciados quando seus serviços são necessários pela primeira vez.

Escolher um perfil

  • Passe uma cadeia de caracteres que representa o nome do perfil no parâmetro lpszProfileName para MAPILogonEx ou...

  • Permitir que o usuário especifique o perfil passando NULL no parâmetro lpszProfileName e definindo o sinalizador MAPI_LOGON_UI ou...

  • Selecione o perfil padrão passando NULL no parâmetro lpszProfileName e definindo o sinalizador MAPI_USE_DEFAULT.

Se você precisar de um perfil específico diferente do perfil padrão, você deve salvar seu nome em seu próprio banco de dados de configuração ou usar uma convenção de nomenclatura específica. O MAPI não expõe nenhum atributo de perfil diferente do nome e do sinalizador padrão na tabela de perfil e o sinalizador de perfil padrão é reservado para clientes de mensagens e aplicativos IPM relacionados.

Os clientes que fornecem informações parciais de configuração de perfil ou provedor para MAPILogonEx devem solicitar ao usuário os dados adicionais, permitindo que uma caixa de diálogo seja exibida. Se as informações estiverem ausentes e MAPILogonEx não puder solicitar que o usuário a forneça, o logon falhará. Os clientes que não precisam de entrada do usuário podem suprimir a exibição da caixa de diálogo.

Os sinalizadores que MAPILogonEx usa para habilitar uma interface do usuário são mutuamente exclusivos; apenas um pode ser definido. Deixar esses sinalizadores sem conjunto suprime a exibição de uma interface do usuário, fazendo com que MAPILogonEx falhe se as informações necessárias estiverem ausentes. Ou seja, se você desabilitar a interface do usuário e passar NULL para o parâmetro lpszProfileName e não definir o sinalizador MAPI_USE_DEFAULT, MAPILogonEx falhará porque não poderá recuperar um nome de perfil.

A sessão que MAPILogonEx estabelece pode ser uma sessão de mensagens individual, uma sessão de mensagens compartilhadas ou uma sessão de não gerenciamento. Sessões de mensagens individuais são conexões privadas entre seu cliente e o subsistema MAPI e podem ser estabelecidas definindo o sinalizador MAPI_NEW_SESSION na chamada para MAPILogonEx.

Sessões de mensagens compartilhadas são conexões que vários clientes de mensagens podem usar. Normalmente, as sessões compartilhadas são estabelecidas para clientes que usam o mesmo perfil. Para estabelecer uma nova sessão como uma sessão compartilhada, defina o sinalizador MAPI_ALLOW_OTHERS.

Usar uma sessão compartilhada existente

  • Não defina o sinalizador de MAPI_NEW_SESSION.

  • Não defina o sinalizador de MAPI_ALLOW_OTHERS.

  • Passe NULL para o parâmetro lpszProfileName .

  • Passe NULL para o parâmetro lpszPassword .

Sessões de não gerenciamento permitem que os clientes acessem o subsistema MAPI, mas não permitem que mensagens sejam enviadas ou recebidas. Aplicativos de configuração ou administração são exemplos de clientes que talvez precisem estabelecer sessões de não gerenciamento. Para solicitar uma sessão de não gerenciamento, defina o sinalizador MAPI_NO_MAIL. Definir esse sinalizador registra o cliente sem informar o spooler MAPI. Os clientes que fazem logon no MAPI com esse sinalizador não podem esperar receber relatórios de leitura status.

O sinalizador MAPI_NO_MAIL só deve ser definido:

  • Se seu cliente não enviar ou receber mensagens durante a sessão.

  • Se seu cliente tiver controle completo sobre o conteúdo do perfil e as mensagens forem enviadas e recebidas usando provedores de transporte e armazenamento de mensagens fortemente acoplados, como os provedores do Microsoft Exchange.

Um cliente de mensagens pode compartilhar uma sessão com um cliente que não gerencia. As características de um membro de uma sessão compartilhada não são afetadas pelas características de outros membros. Ou seja, se você fizer logon com o conjunto de sinalizadores MAPI_NO_MAIL e MAPI_ALLOW_OTHERS, um cliente de mensagens logon em sua sessão não afetará a operação do seu cliente e vice-versa. O cliente de mensagens ainda poderá enviar e receber mensagens e seu cliente não enviará.

MAPILogonEx define alguns outros sinalizadores que você pode definir:

  • MAPI_FORCE_DOWNLOAD indica que as mensagens de entrada devem ser baixadas antes que MAPILogonEx retorne. Não definir esse sinalizador faz com que as mensagens sejam baixadas em segundo plano posteriormente.

  • MAPI_SERVICE_UI_ALWAYS solicita que cada serviço de mensagem no perfil exiba uma caixa de diálogo de configuração.

  • MAPI_NT_SERVICE indica que seu cliente é implementado como um serviço Windows. Esse sinalizador deve ser definido se seu cliente for um serviço.

Com cada logon bem-sucedido, MAPILogonEx retorna um ponteiro para uma sessão MAPI. Você pode usar esse ponteiro para chamar os métodos da interface IMAPISession . Para obter mais informações, consulte IMAPISession : IUnknown. Os ponteiros de sessão, independentemente do tipo de sessão, são exclusivos para os clientes que os recebem e não são válidos entre as tarefas.