我有一个从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_ENTRYIDS
(0x36D81102
)多值二进制属性中;它以索引4(基于0)存储。你可以在OutlookSpy中看到它(我是它的作者-选择收件箱文件夹时单击IMAPIFolder按钮)。
由于Outlook2007不公开Store
对象(这样您就可以使用Store.GetDefaultFolder
),所以您可以使用Redemption(我也是它的作者-任何版本的Outlook)-它公开了RDOStore。所有版本的Outlook中的GetDefaultFolder
方法。