【问题标题】:How to use multiple conditions in single DASL filter query in C#? (Syntax) (for advancedSearch() method)如何在 C# 中的单个 DASL 过滤器查询中使用多个条件? (语法)(用于 advancedSearch() 方法)
【发布时间】:2019-03-01 08:54:18
【问题描述】:

截图 1:

屏幕截图 2:

背景:

目前我正在 VSTO 加载项的电子邮件主题中搜索一个单词。我的语法是:

string filter = "urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'";

甚至以下语法也有效:

string filter = String.Format("\"urn:schemas:mailheader:subject\" >= '{0}'", "ticket");

string filter = String.Format("@SQL=(\"urn:schemas:calendar:dtstart\" >= '{0:g}' " + "AND \"urn:schemas:calendar:dtend\" <= '{1:g}' " + "AND \"urn:schemas:mailheader:subject\" LIKE '%{2}%')", startTime, endTime, wordInSubject);

但是,我还想包括日期时间比较,其中邮件在时间范围之间。

研究链接:

doc for multiple conditions

doc with VB syntax

我尝试了以下方法,但它们不起作用:

string filter = ("urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'") + ("[Start] >= '" + startTime.ToString("g") + "' + [End] <= '" + endTime.ToString("g") + "'"); 

string filter = ("urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'") AND ("[Start] >= '" + startTime.ToString("g") + "' AND [End] <= '" + endTime.ToString("g") + "'"); 

另外,在搜索时,我读到它应该以“@SQL=”为前缀 - 但是,即使这种情况也会引发错误:-

string filter = "@SQL=""urn:schemas:mailheader:subject LIKE \'%" + wordInSubject + "%\'"

问题陈述:-

我不是在寻找专门的 DateTime 案例。但是,我可以只使用在单个过滤字符串(任何类型的条件)中使用多个条件的语法。

link to advancedSearch() Method documentation

【问题讨论】:

    标签: c# outlook vsto outlook-addin add-in


    【解决方案1】:

    尝试以下使用 DASL 属性名称的查询:

    @SQL=("http://schemas.microsoft.com/mapi/proptag/0x0E1D001F" LIKE '%test%') AND ("http://schemas.microsoft.com/mapi/proptag/0x0E060040" > '2017-09-25 00:00:00') AND ("http://schemas.microsoft.com/mapi/proptag/0x0E060040" < '2018-09-25 00:00:00')
    

    它对PR_NORMALIZED_SUBJECT_W(DASL 名称http://schemas.microsoft.com/mapi/proptag/0x0E1D001F)和PR_MESSAGE_DELIVERY_TIME(DASL 名称http://schemas.microsoft.com/mapi/proptag/0x0E060040)使用了限制。

    DASL 属性名称可以在OutlookSpy 中检索(点击IMessage 按钮,选择属性,查看DASL 文本框)。

    【讨论】:

    猜你喜欢
    • 2021-09-24
    • 2022-01-22
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 2018-12-11
    相关资源
    最近更新 更多