用于在Outlook 2007中获取“垃圾邮件”文件夹的MAPI属性



我有一个从Outlook商店获取特定文件夹的例程:

// Property Tag of SentFolder
string propertyName = "http://schemas.microsoft.com/mapi/proptag/0x35E40102";
Outlook.Folders folders = store.GetRootFolder().Folders;
object entry = propertyAccesor.GetProperty(propertyName);
defaultFolderEntryID = propertyAccesor.BinaryToString(entry);
if (!string.IsNullOrEmpty(defaultFolderEntryID))
{
   foreach (Outlook.Folder defaultFolder in folders)
   {
      if (defaultFolder.EntryID == defaultFolderEntryID)
      {
         folder = defaultFolder;
         break;
      }
      else
         Marshal.ReleaseComObject(defaultFolder);   
   }
}
Marshal.ReleaseComObject(folders);
Marshal.ReleaseComObject(store);

我有"已发送邮件"、"发件箱"one_answers"已删除邮件"的属性标记,但找不到"垃圾邮件"文件夹的属性标记。任何人都知道,如果存在,价值是什么?

谢谢。-

为什么不使用Namespace/Store.GetDefaultFolder(olFolderJunk)?当然,除非您正在尝试打开代理邮箱的"垃圾邮件"文件夹(您可以在Outlook 2010或更新版本中使用Store.GetDefaultFolder)。

在MAPI级别上,条目id存储在PR_ADDITIONAL_REN_ENTRYIDS0x36D81102)多值二进制属性中;它以索引4(基于0)存储。你可以在OutlookSpy中看到它(我是它的作者-选择收件箱文件夹时单击IMAPIFolder按钮)。

由于Outlook2007不公开Store对象(这样您就可以使用Store.GetDefaultFolder),所以您可以使用Redemption(我也是它的作者-任何版本的Outlook)-它公开了RDOStore。所有版本的Outlook中的GetDefaultFolder方法。