2015-09-23 57 views
0

我使用Visual Studio 2013和加載項express v.7.7.4087開發Outlook外接程序。 我必須處理多個電子郵件帳戶(商店)。請參閱以下快照和代碼多個郵箱 - 在不使用文件夾名稱作爲字符串的情況下訪問「outlook」電子郵件帳戶的「草稿」文件夾

enter image description here

private void timerSendFromDraftsFolder_Tick(object sender, EventArgs e) 
     { 
      Outlook.Stores stores = null; // CC and OL accounts, 
      Outlook.Store store = null; 
      Outlook.MAPIFolder rootFolder = null; 
      Outlook.Folders rootFolderFolders = null; 
      Outlook.MAPIFolder draftsFolder = null; 
      Outlook.Items items = null; 
      Outlook.MailItem mailItem = null; 

      bool itemSent = true; 
      bool allMailItemsSent = true; 

      try 
      { 
       if (Helper.IsOnline()) 
       { 
        Debug.DebugMessage(3, "AddinModule : timerSendFromSaleswingsFolder_Tick : Fired"); 

        string version = OutlookApp.Version; 
        if (String.Compare(version, "13") > 0) 
        { 
         stores = Globals.ObjNS.Stores; 
         for (int i = 1; i <= stores.Count; i++) 
         { 
          try 
          { 
           store = stores[i]; 
           string storeName = store.DisplayName; 
           if (store.ExchangeStoreType != Outlook.OlExchangeStoreType.olExchangePublicFolder) 
           {          
            rootFolder = store.GetRootFolder(); 
            rootFolderFolders = rootFolder.Folders; 
            if (rootFolderFolders != null) 
            { 
             try 
             { 
              draftsFolder = rootFolderFolders["drafts"]; // not working for "[email protected]" type email accounts 
             } 
             catch (Exception) 
             { 
              Debug.DebugMessage(3, "AddinModule : timerSendFromSaleswingsFolder_Tick : Excep"); 
              draftsFolder = rootFolderFolders["Drafts (This computer only)"]; 
             } 
            } 

我需要訪問每個郵件帳戶的草稿文件夾,但電子郵件帳戶「XXXXXXX @outlook.com「顯示草稿文件夾爲「草稿(僅此計算機)「而不是」草稿「

我爲我工作得很好。但我不想將其引入生產版本。成爲我認爲這不適用於非英語環境。

  1. 能否請你建議我爲

  2. 在贖回(http://www.dimastr.com/redemption/home.htm)的解決方案,是有一個解決方案?

P.S

我在我的一些項目

oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts)的使用該代碼;

但它給出了主郵件帳戶的草稿文件夾。在我的代碼中,這裏沒有「store」對象的這種方法。

回答

1

改爲使用Store類的GetDefaultFolder方法。它允許獲取一個Folder對象,該對象表示存儲中的默認文件夾,並且該Folder對象的類型由FolderType參數指定。

該方法類似於NameSpace對象的GetDefaultFolder方法。區別在於此方法獲取與帳戶關聯的交付存儲的默認文件夾,而NameSpace.GetDefaultFolder返回當前配置的默認存儲的默認文件夾。

贖回庫提供RDOStore類的GetDefaultFolder方法。

+0

它沒有爲我的商店對象提供GetDefaultFolder()方法。那麼我可以使用.NET Reflection引用更新的程序集並調用GetDefaultFolder()方法?謝謝 –

+0

我試過這段代碼。它不適合我。請指教我,如果有道理https://dl.dropboxusercontent.com/u/9507668/reflection.PNG –

1

GetSharedDefaultFolder是要去的方法 - 調用Namespace.CreateRecipient/Recipient.Resolve/Namespace.GetSharedDefaultFolder。

+0

我試過這段代碼。它不適合我。請告訴我,如果它是有道理的dl.dropboxusercontent.com/u/9507668/reflection.PNG –

+0

什麼都不起作用?是否返回錯誤?它是什麼? –

相關問題