MAPI属性在Outlook 2007中获取垃圾文件夹

时间:2014-09-23 20:21:31

标签: outlook outlook-addin 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);

我有已发邮件,发件箱和已删除邮件的属性标记,但我找不到垃圾邮件(或垃圾邮件)文件夹的属性标记。任何人都知道它存在的价值是什么?

感谢.-

1 个答案:

答案 0 :(得分:1)

为什么不使用Namespace / Store.GetDefaultFolder(olFolderJunk)?除非您尝试打开委托邮箱的垃圾邮件文件夹(您可以在Outlook 2010或更高版本中使用Store.GetDefaultFolder)。

在MAPI级别,条目id存储在PR_ADDITIONAL_REN_ENTRYIDS(0x36D81102)多值二进制属性中;它以索引4(基于0)存储。您可以在OutlookSpy中看到它(选择收件箱文件夹时单击IMAPIFolder按钮)。

由于Outlook 2007不公开Store对象(因此您可以使用Store.GetDefaultFolder),因此您可以使用Redemption(任何版本的Outlook) - 它会公开RDOStore。GetDefaultFolder方法版本的Outlook。