我有一个例程可以从 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 回答
为什么不使用 Namespace/Store.GetDefaultFolder(olFolderJunk)?除非您当然要尝试打开代理邮箱的“垃圾邮件”文件夹(您可以在 Outlook 2010 或更高版本中使用 Store.GetDefaultFolder)。
在 MAPI 级别上,条目 ID 存储在 PR_ADDITIONAL_REN_ENTRYIDS(0x36D81102)多值二进制属性中;它以索引 4(从 0 开始)存储。您可以在Outlook 间谍中看到它(选择“收件箱”文件夹后,单击 IMAPIFolder 按钮)。
由于 Outlook 2007 不公开 Store 对象(因此您可以使用 Store.GetDefaultFolder),因此可以使用赎回(任何版本的 Outlook)-它在所有版本的 Outlook 中公开RDO 商店.GetDefaultFolder 方法。