如果您对电子邮件或任何Outlook项目执行Windows索引搜索,则无法获取outlookItem EntryID。
您可以从索引搜索获得的信息是ItemUrl,如下所示:
mapi:// S-1-5-21-2127521184-1604012920-1887927527-71418 /邮箱 - 部分用户($ 484efb89)/ 0 /日历/곯가가가가걝걌곌겷걢곒갑겛개가검걟곔 걙곾걤곂갠가
C#中是否可以从上面的mapi url获取一个EntryID?
答案 0 :(得分:0)
当然,您需要解码搜索URL并提取条目ID。请参阅MSDN上的http://msdn.microsoft.com/en-us/library/office/ff960454.aspx和http://msdn.microsoft.com/en-us/library/office/ff960506.aspx。
答案 1 :(得分:0)
答案 2 :(得分:0)
这是我用来从Windows搜索索引URL条目中获取EntryID的代码。我在URL中查找Unicode字符,类似于 // url mail example“mapi:// {S-1-5-21-4283974727-3770627120-1224354217-1105} /个人文件夹($ 93bd4d7d)/ 0 / 2XX /가가가가가갹겠걸갨겵걀겡갯갉걉곦걽곦걽 갤갢갣가/ at =걥걫각가:审计提案.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);