現在オフラインです。再接続するためにインターネットの接続を待っています

[XCDO] CDO (1.x) エラー MAPI_E_NOT_FOUND (8004010F)

この記事は、以前は次の ID で公開されていました: JP179639
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
現象
次のエラー メッセージが表示される場合があります。
Collaboration Data Objects
[Collaboration Data Objects - [MAPI_E_NOT_FOUND(8004010F)]]
このエラー メッセージが表示される原因はいくつか考えられます。この資料では、このエラーの原因と解決方法について説明しています。
原因
このエラーの原因を以下に示します。
  1. コードが Active Server Page (ASP) 内で実行されている場合、Microsoft Internet Information Server (IIS) コンピュータ上に存在しないプロファイル名が Logon メソッドに渡されている可能性があります。
  2. 使用するリソースが存在しない可能性があります。これは、存在しないサーバーを使用しようとしたり、存在しないメールボックスにログオンしようとすると発生します。これは一般的に、サンプル コードのサーバーやメールボックスの変数を修正せずにコピーして、貼り付けを行ったことが原因で発生します。
  3. 存在しない受信者を解決しようとしている可能性があります。
  4. Folders.Item(searchValue) ステートメントを使用してフォルダのコレクションから要素を取得するときに、前のアイテムを取得しようとしている可能性があります。
  5. ログオンしていない、または予定表に予定がない Exchange Server メールボックスに対して、GetFreeBusy() メソッドを使用している可能性があります。
  6. Groupwise 上でメールを送信するときに、送信トレイにアクセスしたり "Send" メソッドを呼び出すと、このエラーが表示されることがあります。
  7. フィールド (プロパティ) が存在しない Collaboration Data Objects (1.1、1.2、1.21) オブジェクトに対して、そのフィールド (プロパティ) の値を設定しようとしている可能性があります。
解決方法
「原因」に記載されている原因に対応する解決方法は、以下のとおりです。
  1. Logon の呼び出しでは、特定のプロファイル名ではなく、ProfileInfo パラメータを使用してください。これによって、ASP のユーザーに対してプロファイルをプログラムで作成することができます。

    これは、通常ユーザーはサーバー コンピュータ上にプロファイルを持たず、また、CDO (1.1、1.2、1.21) で認識できるように、プロファイルを HKEY_CURRENT_USER に読み込むようにもなっていない可能性があるためです。
  2. Session オブジェクトの Logon メソッドで使用される変数のコードをチェックしてください。ほとんどの ASP サンプル コードには、"strProfileInfo" という変数が含まれています。これは、サーバー名、改行文字、およびメールボックス名を連結したものです。サーバーとメールボックスを定義した変数を探して、そのリソースがネットワークや Exchange Server 上にあることを確認してください。
  3. 受信者が指定されたとおりになっていることを確認します。ASP で CDO (1.1、1.2、1.21) に間違った受信者を渡した場合、問題を解決する方法は、受信者を入力し直す以外にありません。クライアント上でアドレス帳を呼び出すことはできません。
  4. Folders.Item(searchValue) ステートメントを使用してフォルダのコレクションから要素を取得するときに、前のアイテムを取得しようとしています。

    Folders.Item(searchValue) ステートメントでは、前方検索が実行されます。したがって、このステートメントを使用してフォルダ コレクションの 2 番目のアイテム (2) を取得し、その後で同じコレクションの前のアイテムにアクセスしようとした場合、エラーが発生します。

    この問題を回避するには、Folders.Item() ステートメントのインデックス パラメータを使用します。Item(index) の構文では、コレクション内の指定された位置にある Folder オブジェクトが返されます。

    また、FoldersCollection オブジェクトの "GetFirst"、"GetPrevious"、"GetNext"、および "GetLast" の各メソッドを使用することもできます。
  5. 空き時間情報は、メール クライアントがメールボックスにログオンしており、少なくとも 1 つの予定がそのメールボックスの予定表に存在しなければ利用できません。

    以下は、この問題に対する 3 つの回避策です。
    • Outlook クライアントでメールボックスにログインして、メールボックスに空き時間情報が確実に書き込まれるようにします。メールに最初にログインすると、Outlook は予定アイテムを作成し、これによって空き時間情報が作成されます。
    • Exchange クライアントでメールボックスにログインして Schedule+ を起動するか、単に Schedule+ 自体を起動します。これにより、そのメールボックスに空き時間情報が作成されます。実際に予定を作成する必要はありません。
    • そのメールボックスに空き時間情報が作成されるように、CDO (1.2、1.21) を使用して、新しいテスト用の予定を作成します。
  6. Novell GroupWise アカウントでメールを送信している間、送信トレイへのアクセスや、"Send" メソッドの呼び出しの際に、MAPI_E_NOT_FOUND エラーが表示されることがあります。

    このエラーを解決するには、次の方法を使用します。

    • Session オブジェクトの Logon メソッドを呼び出す際に、NoMail:=True を指定します。
    • GroupWise のメッセージ ストアに (Outlook などで) 接続した後、MAPI スプーラが既に実行されていないことを確認します。
    注 : 上記の回避策を使用すると、GroupWise アカウント上で CDO (1.1、1.2、1.21) を使用してメールを送信する際のその他の問題も解決することができます。
    • メッセージは送信されるが、テキストや添付ファイルが欠落する。
    • メッセージは送信済みアイテムに表示されるが、受信者に配信されない。
  7. 単にフィールド値を設定するのではなく、フィールドが存在しない可能性をまず考えます。Fields コレクションの Add メソッドを使用します。こうすることで、objMsg.Fields.Add &H00150040, 234 のように、フィールドの追加とその値の設定が容易になります。このコード サンプルは、PR_EXPIRY_LIMIT (&H00150040) フィールドの値の追加と設定を示したものです。プロパティが既に存在していれば、エラーは発生しません。
関連情報
関連情報については、「サポート技術情報」 (Microsoft Knowledge Base) の次の資料を参照してください。
183094 PRB: MAPI_E_NOT_FOUND Err Setting Value of Property with CDO

183250 PRB: CDO Error: Run-time error "-2147221233" with GetFreeBusy

183250 [XCDO] CDO (1.x) エラー : GetFreeBusy() での実行時エラー '-2147221233'

195662 HOWTO: Log On to Exchange with the ProfileInfo Parameter
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 179639 (最終更新日 2000-04-30) をもとに作成したものです。

プロパティ

文書番号:179639 - 最終更新日: 03/30/2004 20:08:49 - リビジョン: 5.0

Microsoft Collaboration Data Objects 1.21, Microsoft Collaboration Data Objects 1.1, Microsoft Collaboration Data Objects 1.2

  • kbcode kbfaq kbgrpdsmsg kbmsg kbole kbpending kbprb KB179639
フィードバック