2014-06-10 58 views
0

如果您對電子郵件或任何Outlook項目執行Windows索引搜索,則無法獲取OutlookItem EntryID。是否可以從Windows搜索項目獲取Outlook MailItem EntryIDUrl

信息,你可以從索引搜索得到的是ItemUrl是這樣的:

MAPI:// S-1-5-21-2127521184-1604012920-1887927527-71418 /郵箱 - 某些用戶($ 484 efb89)/ 0 /日曆/곯걍걝걌곌겷걢곒개검검걟곔걙곾걤곂갠012 012 012

它在C#中是否可行從上面的mapi url中獲取EntryID?

+0

您正在使用什麼庫?正在登錄郵箱? –

+0

我正在使用VSTO。 – user2258793

+0

這是你要找的嗎? http://msdn.microsoft.com/en-us/library/office/ff868618%28v=office.15%29.aspx –

回答

0

這是我使用從Windows搜索索引網址entry.I得到的EntryID尋找在URL中的字符的Unicode代碼這是類似於 // url郵件示例「mapi:// {S-1-5-21-4283974727-3770627120-1224354217-1105}/Personal Folders($ 93bd4d7d)/ 0/2XX /가가가가걛걛갹겠갹겠걸갨 겵걀겡갯갉걉곦걽곁걹갤갢갣/ at =걥걫각가:Audit proposal.docx「

/// <summary> 
 
     /// Process a string to decode Unicode (Hangul) value to make Outlook EntryID. Pairs of hex digits make unicode chars 
 
     /// </summary> 
 
     /// <param name="sIn"></param> 
 
     /// <returns></returns> 
 
     public static string ProcessHangul(string sIn) 
 
     { 
 
      string sOut = ""; 
 
      try 
 
      { 
 
       for (int i = 0; i < sIn.Length; i++) 
 
       { 
 
        int iCode = sIn[i]; 
 
        string hexCode = iCode.ToString("X"); 
 
        //System.Diagnostics.Debug.Print(i + " " + hexCode); 
 

 
        sOut += hexCode.Substring(2, 2); 
 
       } 
 
      } 
 
      catch (Exception Ex) 
 
      { 
 
       Common.LogError("ProcessHangul error", Ex); 
 
      } 
 
      return sOut; 
 
     }

這被稱爲如下:

string sHangul = ""; 
 
        if (sURL.IndexOf("/at=") == -1) // if no attachment 
 
        { sHangul = Path.GetFileName(sURL); } 
 
        else 
 
        { 
 
         sHangul = Path.GetFileName(Path.GetDirectoryName(sURL)); 
 
        } 
 

 
        sEntryID = Common.ProcessHangul(sHangul);

相關問題