簡體   English   中英

從 Outlook VSTO 插件擴展交換在線公用文件夾

[英]Expand exchange online public folders from Outlook VSTO addin

我有一個簡單的 VSTO outlook 插件,需要將 email 消息移動到公共文件夾中。 它工作正常,除非 outlook 首次啟動。 在首次啟動 outlook(office 365 業務)后,如果我嘗試使用插件將消息移動到公用文件夾中,使用 GetFolderFromID(IDValueStoredInMyAddin) 我收到錯誤“操作失敗。消息傳遞接口返回了一個未知錯誤。如果問題仍然存在,重新啟動 Outlook”。 如果在啟動 outlook 后用戶手動展開公用文件夾樹,則插件可以正常工作而不會出現此錯誤。 有什么想法嗎? 有沒有辦法從 VSTO 插件中擴展公用文件夾?

Outlook 在首次訪問時初始化存儲。 嘗試指定商店入口 id(調用GetFolderFromID時的第二個參數)或首先使用Namespacve.GetStorefromID打開商店,然后使用Store.GetFolderFromID

我剛剛遇到了同樣的問題,看起來它正在處理這個問題:

public string GetStoreID()
{
  if (Properties.Settings.Default.SharedFolderEmail != "")
  {
    Outlook._NameSpace nSpace = Application.GetNamespace("MAPI");

    Outlook.Recipient recip = nSpace.CreateRecipient(Properties.Settings.Default.SharedFolderEmail);
    if (recip.Resolve())
    {
      Outlook.Folder root = nSpace.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder;
      return root.StoreID;
    }
    else
    {
      return "";
    }
  }
  else
  {
    Outlook.Folder root = Application.Session.DefaultStore.GetRootFolder() as Outlook.Folder;
    return root.StoreID;
  }
}


Outlook._NameSpace nSpace = Application.GetNamespace("MAPI");

_Archive = nSpace.GetFolderFromID(FolderToMonitor_EntryID, GetStoreID());

_Archive.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(ItemAdded);

GC.KeepAlive(_Archive);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM