【问题标题】:How to search for the name of the UserProperty in Outlook.MailItems, not their value如何在 Outlook.MailItems 中搜索 UserProperty 的名称,而不是它们的值
【发布时间】:2019-02-27 07:19:23
【问题描述】:

背景:

目前我正在搜索 Outlook.MailItems,它们的 UserProperty(此处为“IsProcessed”)等于其 propertyValue(此处为 true 或 false)。

string propertyValue = "true";
string filter = "http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/IsProcessed LIKE \'%" + propertyValue + "%\'";

我在高级搜索link to doc使用这个过滤器字符串

问题说明:

我的用例是搜索这些邮件项是否分配了任何 UserProperty,其中 UserProperty 的名称 =“IsProcessed”。

有什么方法可以使用类似的 DASL 过滤字符串吗?

谢谢。

【问题讨论】:

    标签: c# vsto outlook-addin add-in visual-studio-addins


    【解决方案1】:

    不,您需要知道 GUID。 OOM 中的所有使用属性都使用{00020329-0000-0000-C000-000000000046}(即PS_PUBLIC_STRINGS)的GUID。

    查看带有OutlookSpy 的现有邮件(选择邮件,单击 IMessage 按钮)- 当您选择命名属性(粗体)时,OutlookSpy 将显示其 GUID、ID 和 DASL 名称。

    【讨论】:

    • 如果我使用 Find() link1 [link2](docs.microsoft.com/en-us/previous-versions/office/developer/… 目前我正在做的事情: string searchCriteria = "[IsProcessed] = 'True'"; 其中 "IsProcessed" 是名称属性。有什么方法可以检查 ["UserProperty"] = "IsProcessed" 吗?
    • 我在 Items.Find() string searchCriteria = "schemas.microsoft.com/mapi/proptag/0x007D001F LIKE \'%" + propertyName + "%\'"; 中尝试了以下方式但它不起作用。尽管它是在其 VB 文档中编写的:link
    • 为什么 lit 会起作用? 0x007D001F 是 PR_TRANSPORT_MESSAGE_HEADERS_A,因此您的代码正在搜索 MIME 标头中是否存在该特定字符串。它不会用于用户属性。您是否查看了您的查询应该使用 OutlookSpy 找到的邮件?
    • 知道了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2016-10-24
    • 2022-11-16
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多