Outlook DASL - 当发送者和接收者相同时跳过。

问题描述 投票:0回答:1

我想用DASL查询来过滤那些发件人和收件人不一样的邮件。尝试了下面的方法,但似乎没有效果。请问我是否做错了什么?

我得到一个错误信息 "Cannot Parse condition at......"。

Dim PR_RECEIVED_BY_NAME as String = "http://schemas.microsoft.com/mapi/proptag/0x0040001E"
Dim PR_SENT_REPRESENTING_NAME as String = "http://schemas.microsoft.com/mapi/proptag/0x0042001E"

strFilter = "@SQL=" & "%last7days(urn:schemas:httpmail:datereceived)% AND (" & PR_RECEIVED_BY_NAME & "<>" & PR_SENT_REPRESENTING_NAME & ")
outlook-vba
1个回答
0
投票
  1. 在运行任何限制之前,你需要对集合进行分类。

  2. 而不是使用 last7days 我建议使用这样的条件。


"@SQL=""urn:schemas:httpmail:datereceived"" <" & Format("6/10/2020 3:30pm", "ddddd h:nn AMPM") & "'"

  1. 例如,你需要在DASL名称周围使用双引号。
filter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" = 'can''t'"
  1. 试着在搜索条件中使用一个单一的属性名 通过获取另一个属性值并将其作为一个常量来使用。希望能帮到你。

0
投票

如果我没记错的话,OOM不支持在查询中比较两个属性,只支持用常量比较一个属性--这将(在扩展的MAPI级别上)需要用到 RES_COMPAREPROPS 限制支持,而OOM不提供这种支持。

和往常一样,你需要扩展的MAPI(C++或Delphi)或 赎回 (任何语言)为此。

© www.soinside.com 2019 - 2024. All rights reserved.