我正在开发一个Outlook 2010加载项,需要在关注电子邮件中找到的链接之前提示用户。在此过程中,我想让用户选择信任或阻止电子邮件的发件人,因此我需要访问这两个列表。我意识到Outlook OM没有公开垃圾邮件/垃圾邮件选项。尽管我使用Redemption成功完成了任务,但不幸的是我的雇主不允许使用它,所以我需要找到另一种方法。我发现此帖子(Get Safe sender list in Outlook 2007 C# Add in)指向MAPI属性或注册表项的方向。 我的偏好是MAPI道具,但我不确定该属性属于哪个对象。它是默认商店的财产吗?
Outlook.Store obj = Application.Session.DefaultStore;
const string PR_SPAM_TRUSTED_SENDERS_W =
"http://schemas.microsoft.com/mapi/proptag/0x001f0418";
Outlook.PropertyAccessor pa = obj.PropertyAccessor;
string list= pa.GetProperty(PR_SPAM_TRUSTED_SENDERS_W).ToString();
不幸的是我收到了一条错误消息(翻译成英文),比如'对象没有这样的属性'。在生产中,它必须与连接到Exchange 2007邮箱的Outlook客户端一起使用。
答案 0 :(得分:1)
好的发现了。实际属性称为PidTagExtendedRuleMessageCondition,Blob格式分别在MS-OXCSPAM和MS-OXORULE中描述。
答案 1 :(得分:0)
该属性未在商店本身上设置,它设置在收件箱文件夹中的隐藏邮件(可使用MAPIFolder.GetStorage访问),邮件类为IPM.ExtendedRule.Message,PR_RuleMsgProvider =“JunkEmailRule”。您应该能够在OutlookSpy中看到隐藏的消息(单击IMAPIFolder,转到“关联的内容”选项卡)。存储的数据位于PR_EXTENDED_RULE_ACTIONS属性中。