1

別のユーザーの Exchange 2003 受信トレイからプログラムによって情報を取得する自動監視スクリプトを作成しようとしています。MAPI にログインして自分の受信トレイに接続するための C++ コードが動作しています。また、[コントロール パネル] -> [メール] アプレットを使用して、別のユーザーのメールボックスを自分のプロファイルに構成することもでき、コードはその方法でアクセスできます。ただし、これは Outlook がインストールされたデスクトップで実行されたもので、メール プロファイル エディタが充実しています。

これはサーバー上で実行されるため、Outlook をまったくインストールしないことをお勧めします。代わりに、MAPI クライアントをインストールできます。MAPILogonEx()次に、MAPI_LOGON_UIフラグを使用してメール プロファイル ウィザードをポップアップ表示する単純な MAPI アプリを作成します。ただし、基本的な MAPI クライアントには、別のユーザーのメールボックスを構成する機能がありません。要件として、このスクリプトは監視アプリケーションのサービス アカウントとしてのみ実行できるため、必要なメールボックスのアカウントとして実行するように指示することはできません。

基本的な MAPI クライアントを使用して、別のユーザーのメールボックスに接続することはできますか (アクセス許可が既に付与されていると仮定します)。それとも、この機能のために Outlook をインストールする必要がありますか?

4

3 に答える 3

1

なるほど...明示的にそれを行う方法がわかりません。CreateStoreEntryIDこれは通常、間違ったフラグで呼び出すことの副作用です。あなたがやろうとしていることはおそらく:

  1. IID_IExchangeManageStoreデフォルトのメッセージストアから取得します
  2. 電話CreateStoreEntryID
  3. 次に、エントリIDでそのストアを開きます

    LPEXCHANGEMANAGESTORE mapiObject = NULL;
    
    store->QueryInterface( IID_IExchangeManageStore, (LPVOID *) &mapiObject);
    
    mapiObject->CreateStoreEntryID( server, mailbox, OPENSTORE_TAKE_OWNERSHIP | 
        OPENSTORE_USE_ADMIN_PRIVILEGE, &len, &buffer);
    
    //Call OpenEntry on the entry id
    

より詳細な例が必要な場合は、MFCMAPIプロジェクトのソースでを検索してCreateStoreEntryIDください。microsoft.public.win32.programmer.messaging他に質問がある場合は、ニュースグループに回答してもらうのが最適です。

于 2008-12-08T19:33:43.547 に答える
1

Microsoft Exchange MAPI Client を使用することを強くお勧めします (リンク済み)。これらのライブラリの Outlook バージョンよりもはるかに堅牢になるように設計されています。拡張 MAPI に関しては、Outlook と Exchange Server の間で API に違いはありません。

他のメール ストアを開くには、Extended MAPI (Cain TS Random の説明による) を使用する必要があります。もちろん、アプリケーションは、Exchange サーバーで適切な権限を持つ Windows ユーザーとしてログインする必要があります。

于 2008-12-11T22:17:03.887 に答える
0

ConfigureMsgService を調べましたか? それは Exchange MAPI で動作すると思いますか、それとも、試してみてうまくいかなかったということですか?

于 2008-12-08T18:17:23.513 に答える