【问题标题】:Finding attachments with dav queries using AdvancedSearchMethod使用 AdvancedSearchMethod 查找带有 dav 查询的附件
【发布时间】:2015-10-18 02:18:32
【问题描述】:

我正在尝试使用高级搜索方法来过滤大量电子邮件。我正在考虑最终创建一个过滤器,例如:

filter = "(urn:schemas:mailheader:subject like '%project%' or " _ 
& "urn:schemas:httpmail:textdescription like '%project%') and " _
& "urn:schemas:mailheader:date > 'now - 1:00:00' and " _
& "urn:schemas:httpmail:hasattachment > 0 and " _
**& "urn:schemas:httpmail:attachmentfilename like '%tonnage%'"** 
 

问题是附件的文件名部分(粗体线)不起作用。我相信这是因为它正在寻找类似 olmailitem 的东西,而不是该对象的附件。无论如何,我需要一个简单的过滤器来查看附件是否正常工作,然后我可以将其放大。这是我目前所拥有的:

scope = "'Fakeexample123@outlook.com'"
    
'this is a dumbed down version of my filter,
'but I want it to search for 3 instances of '%attachment%':
    'attachment
    'Attachment
    'ATTACHMENT
    'for any .xls, .xlsm, or .xlsx files
    
    'I was thinking something like:
    'filter = "ucase(urn:schemas:httpmail:attachmentfilename) like '%ATTACHMENT%xls%'"
    'but I don't believe that works... ideas?
    
    filter = "urn:schemas:httpmail:hasattachment > 0 and " _ 
'***************** This is the line that is giving me trouble *****************
    "urn:schemas:httpmail:attachmentfilename like '%attachment%xls%'"
'***************** End trouble *****************
    Set AdvancedSearch = myOlApp.AdvancedSearch(scope, filter, True, "test")

如果您有任何想法,请告诉我。

【问题讨论】:

    标签: vba filter outlook webdav advanced-search


    【解决方案1】:

    需要先找到带附件的项目,例如可以使用如下条件:

      "urn:schemas:httpmail:hasattachment" = 1
    

    注意,应使用 SQL 语法使其在 Outlook 中正常工作。

      filter = "@SQL=""urn:schemas:httpmail:hasattachment"" = 1"
    

    【讨论】:

    • Eugene,一旦我确定该项目有一个附件,我如何验证它有一个 ucase(attachment.filename) like "*project*" 为真的附件?这就是我卡住的过滤器部分。
    • 另外,顺便说一句,Outlook 的高级搜索方法是唯一(至少据我所知)不需要 SQL 语法(例如“@SQL=”)的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多