2016-09-20 38 views
0

我試圖通過Outlook 2013的ActiveX接口訪問給定文件夾中的所有郵件。我使用Outlook的郵件API(MAPI)來獲取所需的文件夾對象。以編程方式訪問Exchange文件夾中的已存檔郵件

但是,當我瀏覽此文件夾對象的所有項目時,許多消息都丟失了。事實上,MS Exchange服務器上的郵件與Outlook不同步,因爲它們太舊。 (在Outlook中,該文件夾以一個名爲'點擊此處查看Microsoft Exchange的更多信息'的鏈接結尾。點擊鏈接時,丟失的郵件出現在Outlook中,但是在此操作之後它們不會添加到文件夾對象中。)

如何訪問這些消息?是否可以通過Outlook ActiveX界面?如果沒有,是否有與MS Exchange服務器等效的接口?

+0

實際上在歸檔郵箱中丟失的郵件也是如此嗎?或者它們是否已經過時,並且已經超過了Exchange帳戶屬性對話框中同步設置的截止日期? –

+0

第二個選項 - 它們不會與Outlook同步,因爲它們太舊了。我對「存檔」的使用可能是誤導性的。 – user1735003

回答

0

訪問舊的(但不是歸檔)的郵件,您可以

  1. 設置Exchange帳戶同步在Exchange帳戶屬性對話框中的所有項目。 Outlook必須重新啓動。
  2. 將Exchange帳戶設置爲以編程方式同步所有項目。您可以使用擴展MAPI(僅限C++或Delphi)執行此操作,但需要在MSEMS配置文件部分中設置一個標誌。 Redemption(任何語言)公開RDOExchangeMailboxStoreMonthsToKeepOffline/DaysToKeepOffline屬性。 Outlook必須重新啓動。
  3. 當調用IMsgStore::OpenEntry(僅適用於擴展MAPI,C++或Delphi)時,使用MAPI_NO_CACHE標誌以聯機模式打開父文件夾。 Redemption可讓您在使用RDOSession打開文件夾時傳遞該標誌。 GetFolderFromID來自任何語言。
相關問題