Erro 8004010F "MAPI_E_NOT_FOUND" com CDO 1.x

Traduções de Artigos Traduções de Artigos
Artigo: 179639 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Poderá receber a seguinte mensagem de erro:
Collaboration Data Objects
[Collaboration Data Objects-[MAPI_E_NOT_FOUND(8004010F)]]
Existem várias razões para esta mensagem apareça. Este artigo aborda algumas das causas e resoluções para o erro.

Causa

Segue-se uma lista de causas do erro:
  1. Se o código estiver em execução numa página ASP (Active Server Pages), pode ser passar um nome de perfil para o método de início de sessão onde o perfil não existe no computador que está a executar o Microsoft Internet Information Server (IIS).
  2. Pode estar a tentar utilizar um recurso que não existe. Este problema ocorre quando tenta utilizar um servidor ou a tenta iniciar sessão numa caixa de correio que não existe. Uma causa comum deste problema é copiar e colar exemplos de código sem modificar as variáveis de servidor e da caixa de correio.
  3. Pode estar a tentar resolver um destinatário que não existe.
  4. Quando importar elementos da colecção de pastas através de instrução Folders.Item(searchValue) , pode tentar obter um item anterior.
  5. Pode utilizar o método GetFreeBusy contra um servidor de Exchange caixas de correio que foi não registado para ainda ou que não tenha quaisquer compromissos no calendário.
  6. Enquanto estiver a enviar correio Groupwise, poderá receber esta mensagem de erro quando acede a pasta a enviar ou quando chamar o método Enviar .
  7. Pode estar a tentar definir o valor de um campo (propriedade) num objecto Collaboration Data Objects (1.1, 1.2, 1.21) onde o campo (propriedade) não existe.

Resolução

As resoluções seguintes correspondem as causas listadas na secção causa.
  1. Deverá utilizar o parâmetro ProfileInfo na chamada ao método de início de sessão em vez de um nome de perfil específico. Isto permite-lhe criar um perfil para o utilizador da página ASP programaticamente.

    Isto é feito porque o utilizador não normalmente terá perfis no servidor e os perfis são provavelmente não vai estar carregados na HKEY_CURRENT_USER para ser localizado pelo CDO (1.1, 1.2, 1.21).
  2. Verifique o código para variáveis que são utilizados o método de início de sessão do objeto Session . A maior parte dos exemplos de ASP código contém uma variável que chama strProfileInfo. Esta variável é uma combinação do nome do servidor, uma avanço de linha e o nome da caixa de correio. Procure as variáveis que definem o servidor e a caixa de correio e certifique-se de que os recursos na rede e no computador que esteja a executar o Exchange Server.
  3. Garantir que o destinatário está como especificado. Se passar um destinatário inválido para o CDO (1.1, 1.2, 1.21) numa página ASP, a única forma de resolver o problema é novamente o destinatário. Não pode chamar o livro de endereços no cliente.
  4. Quando importar elementos da colecção de pastas através de instrução Folders.Item(searchValue) , tenta obter um item anterior.

    A instrução Folders.Item(searchValue) efectua uma pesquisa directa. Por conseguinte, se utilizar essa instrução para obter item dois (2) do conjunto de pastas e, em seguida, mais tarde tenta aceder a um item anterior da mesma colecção, recebe o erro.

    Para contornar este problema, utilize o parâmetro índice da instrução Folders.Item . A sintaxe Item(index) devolve a pasta de objectos na posição indicada na colecção.

    Em alternativa, pode utilizar o método GetFirst , o método GetPrevious , o método GetNext e o método GetLast do objecto FoldersCollection .
  5. Informações de disponibilidade não estará disponíveis para uma caixa de correio até que a caixa de correio foi registada no utilizando um cliente de correio e existe, pelo menos, um compromisso no calendário para a caixa de correio.

    Seguem-se três soluções para este problema:
    • Sessão para a caixa de correio utilizando um cliente do Outlook para se certificar de que algumas informações de Free/Busy são escritas na caixa de correio. Quando inicia sessão no correio pela primeira vez, o Outlook cria um item de compromisso que por sua vez cria informações de disponibilidade.
    • Iniciar sessão caixa de correio utilizando um cliente do Exchange e inicie o Schedule + ou inicie o Schedule + sozinho. Isto cria informações de disponibilidade na caixa de correio. Não é necessário, na realidade, criar um compromisso.
    • Utilize CDO (1.2, 1.21) para criar um novo compromisso de teste para que as informações de Free/Busy são criadas para essa caixa de correio.
  6. Enquanto estiver a enviar correio Groupwise, poderá receber esta mensagem de erro quando acede a pasta a enviar ou quando chamar o método Enviar .

    Utilize o seguinte para resolver o erro:
    • Especificar NoMail: = TRUE na chamada ao método de início de sessão do objeto Session .
    • Certifique-se que o spool de MAPI não está em execução já depois de ter ligado ao arquivo de mensagens GroupWise, como, por exemplo, com o Outlook.
    Nota Estas soluções alternativas também podem resolver os seguintes outros problemas de envio de correio utilizando o CDO (1.1, 1.2, 1.21) numa conta GroupWise:
    • A mensagem é enviada, mas texto e anexos não existem.
    • A mensagem aparece em itens enviados, mas nunca é entregue ao destinatário
  7. Em vez de apenas definir o valor do campo, suponha que o campo não existe. Utilize o método Adicionar de campos de colecção. Utilizando o método de Adicionar , pode o adicione o campo e definir o valor da seguinte forma.
    objMsg.Fields.Add &H00150040, 234
    o código de exemplo anterior demonstra adicionando e definindo o valor para o PR_EXPIRY_LIMIT (& H00150040) campo. Nenhum erro ocorre se a propriedade já existe.

Referências

Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
183094Erro CDO (1.x) MAPI_E_NOT_FOUND valor da definição da propriedade
183250Erro CDO (1.x): erro Run-time '-2147221233' com GetFreeBusy
195662Como iniciar sessão Exchange com o parâmetro ProfileInfo

Propriedades

Artigo: 179639 - Última revisão: 5 de outubro de 2005 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft Collaboration Data Objects 1.21
  • Microsoft Collaboration Data Objects 1.1
  • Microsoft Collaboration Data Objects 1.2
Palavras-chave: 
kbmt kbcode kbfaq kbgrpdsmsg kbmsg kbole kbpending kbprb KB179639 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 179639
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com