Pastas de recebimento MAPI
Aplica-se a: Outlook 2013 | Outlook 2016
Uma pasta de recebimento contém mensagens de entrada de uma classe de mensagem específica. As associações de pasta de recebimento podem ser estabelecidas por clientes, pelo provedor do repositório de mensagens ou pelo MAPI. O MAPI tem duas pastas de recebimento padrão: a pasta raiz do repositório de mensagens e a pasta Caixa de Entrada da sub-árvore IPM (mensagem interpessoal). A pasta raiz do repositório de mensagens é a pasta de recebimento padrão para todas as mensagens de comunicação interprocessada (IPC).
A pasta Caixa de Entrada é criada pelo MAPI para cada novo repositório de mensagens e atua como a pasta de recebimento padrão para as seguintes classes de mensagem:
A classe de mensagem IPM.
A classe de mensagem de relatório.
Uma classe vazia ou ausente.
Todas as mensagens de relatório, mesmo aquelas enviadas em resposta a uma mensagem IPC, são colocadas na pasta Caixa de Entrada. Os aplicativos cliente IPC que processam seus próprios relatórios devem adicionar explicitamente uma pasta de recebimento para a classe específica do relatório. Por exemplo, se um cliente espera receber mensagens com o IPC da classe. Paper.Order, ele deve chamar o método IMsgStore::SetReceiveFolder para estabelecer uma pasta de recebimento para relatórios com a classe Report.IPC.Paper.Order.
As associações de pastas de recebimento são baseadas na organização hierárquica das classes de mensagem. Os clientes podem estabelecer explicitamente uma associação entre uma pasta de recebimento e uma classe de mensagem ou usar as pastas de recebimento padrão MAPI. Normalmente, os clientes designam uma pasta para receber mensagens para uma classe base e todas as suas subclasses. Por exemplo, um cliente típico estabeleceria uma associação para mensagens com a classe MyClass. Em seguida, se o cliente recebesse mensagens com as classes MyClass.Home ou MyClass.Home.Kitchen.Computer, essas mensagens iriam para a pasta de recebimento da classe base, MyClass.
Há três métodos de armazenamento de mensagens que os clientes usam para trabalhar com pastas de recebimento:
A tabela de pastas de recebimento é uma listagem de informações sobre todas as pastas de recebimento estabelecidas para um repositório de mensagens. O conjunto de colunas necessário inclui a classe de mensagem, a chave de registro e o identificador de entrada.
Para recuperar uma pasta de recebimento para uma classe de mensagem específica, os clientes passam a cadeia de caracteres de classe de mensagem para o método IMsgStore::GetReceiveFolder . O provedor do repositório de mensagens retorna um identificador de entrada para a pasta correspondente. Para implementar GetReceiveFolder, um provedor de repositório de mensagens deve usar um algoritmo que seleciona a pasta cuja classe de mensagem associada corresponde ao prefixo mais longo possível da classe de mensagem especificada. Por exemplo, suponha que o repositório de mensagens tenha as seguintes associações entre pastas de recebimento e classes de mensagem em sua tabela de pastas de recebimento:
As mensagens IPM são colocadas na pasta Caixa de Entrada.
IPM. Observação.Mensagens de exemplo são colocadas na pasta Exemplos.
A tabela a seguir mostra como as mensagens com várias classes seriam roteadas para a pasta de recebimento apropriada.
Classe de mensagem de entrada | Receber pasta |
---|---|
IPM. Note.Sample.Simple |
Pasta Exemplos |
IPM. Nota |
Pasta caixa de entrada |
IPM. Cartão |
Pasta caixa de entrada |
IPM. Note.Sample.Simple.Totally |
Pasta Exemplos |
Os clientes chamam o método SetReceiveFolder para fazer uma associação explícita entre uma determinada classe de mensagem e receber pasta. Quando uma mensagem é entregue a uma classe de mensagem vazia, o MAPI coloca a mensagem na pasta de recebimento definida para um prefixo da classe vazia. Por exemplo, se seu cliente tiver uma pasta de recebimento estabelecida para mensagens com IPM de classe e uma mensagem com o IPM da classe. Note.Test é entregue, essa mensagem será colocada na pasta de recebimento da classe de mensagem IPM .
Ao chamar SetReceiveFolder, os clientes normalmente passam uma cadeia de caracteres de classe de mensagem e o identificador de entrada da nova pasta de recebimento. No entanto, os clientes podem passar NULL para um ou ambos os parâmetros. A tabela a seguir descreve o comportamento resultante da especificação de NULL para os parâmetros de classe de mensagem e identificador de entrada.
Parâmetro SetReceiveFolder | Comportamento resultante |
---|---|
Identificador de entrada definido como NULL |
O repositório de mensagens exclui a associação entre a classe de mensagem especificada e sua pasta de recebimento existente. Uma nova pasta de recebimento não está estabelecida. Chamadas subsequentes para GetReceiveFolder com essa classe de mensagem retornarão a pasta de recebimento para um prefixo da classe de mensagem; para novos repositórios de mensagens, GetReceiveFolder retornará a caixa de entrada na sub-árvore IPM. |
Classe de mensagem definida como NULL |
O repositório de mensagens altera a associação da classe de mensagem vazia para a pasta indicada. Mensagens de entrada cuja classe não é reconhecida de outra forma irão para esta pasta. |
Identificador de entrada e classe de mensagem definida como NULL |
O repositório de mensagens exclui a associação classe/pasta para a classe de mensagem vazia. Você não deve definir ambos os parâmetros como NULL, pois normalmente resulta em mensagens de entrada sendo colocadas na pasta raiz do repositório de mensagens, uma pasta que é invisível para o cliente. |
Embora a classe de uma mensagem nunca deva estar vazia, uma classe de mensagem vazia pode ocorrer. É responsabilidade do repositório de mensagens atribuir a classe de mensagem ao IPM para novas mensagens de saída que tenham uma classe vazia; é responsabilidade do provedor de transporte atribuir IPM. Observe como a classe para mensagens de entrada que têm qualquer classe vazia.