2016-09-20 11 views
0

特定のフォルダ内のすべてのメールにOutlook 2013のActiveXインターフェイス経由でアクセスしようとしています。OutlookのメッセージAPI(MAPI)を使用して目的のフォルダオブジェクトを取得します。Exchangeフォルダ内のアーカイブされたメールにプログラムでアクセスする

ただし、このフォルダオブジェクトのすべての項目を調べると、多くのメッセージが表示されません。確かに、MS Exchangeサーバー上にあるメッセージは、古いものであるためOutlookと同期されません。 (Outlookでは、フォルダは「Microsoft Exchangeの詳細を表示するにはここをクリック」というリンクで終了します。リンクをクリックするとOutlookに表示されますが、この操作の後ではフォルダオブジェクトに追加されません)

これらのメッセージへのアクセス方法を教えてください。 Outlook ActiveXインターフェイス経由で可能ですか?そうでない場合、MS Exchangeサーバーと同等のインターフェースがありますか? (アーカイブではなく)古いアクセスするには

+0

実際にアーカイブメールボックスにメッセージがありませんか?または、Exchangeアカウントのプロパティダイアログの同期設定の期限を過ぎていますか。 –

+0

2番目のオプション - Outlookとの同期が古すぎるため、Outlookと同期されません。私の「アーカイブされた」の使用はおそらく誤解を招くおそれがあります。 – user1735003

答えて

0

電子メール、あなたはどちらか

  1. は、Exchangeアカウントのプロパティ]ダイアログボックス内のすべての項目を同期するExchangeアカウントを設定することができます。 Outlookを再起動する必要があります。
  2. すべてのアイテムをプログラムによって同期するようにExchangeアカウントを設定します。拡張MAPI(C++またはDelphiのみ)を使用すると、MSEMSプロファイルセクションにフラグを設定する必要があります。 Redemption(任意の言語)はRDOExchangeMailboxStoreを公開しています。 MonthsToKeepOffline/DaysToKeepOfflineプロパティ。 Outlookを再起動する必要があります。
  3. IMsgStore::OpenEntry(拡張MAPI、C++またはDelphiのみ)を呼び出すときに、MAPI_NO_CACHEフラグを使用して、オンラインモードで親フォルダを開きます。 RedemptionRDOSessionを使用してフォルダを開くと、そのフラグを渡すことができます。任意の言語のGetFolderFromID
関連する問題