You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RDCOMClient模糊搜索Outlook收件箱主题并获取附件

在RDCOMClient中实现Outlook主题的模糊查询获取附件

嘿,我来帮你搞定这个模糊匹配的问题!你现在已经能处理单封精确匹配的邮件,但因为主题带动态日期时间,需要匹配前半部分固定内容对吧?其实Outlook的AdvancedSearch支持用LIKE操作符做模糊查询,用%作为通配符就行,具体操作如下:

修改模糊查询的搜索语句

原来的精确匹配是完全等于某个固定主题,现在要匹配以test email executed at开头的所有主题,只需要把查询条件改成带LIKE和%的形式:

  • %在这里代表任意长度的字符(包括空字符),放在固定内容后面就会匹配所有以这段内容开头的主题,不管后面的日期时间是什么。

修改后的完整代码示例:

library(RDCOMClient)

# 初始化Outlook应用
outlook_app <- COMCreate("Outlook.Application")

# 执行模糊搜索:匹配主题以"test email executed at"开头的收件箱邮件
search <- outlook_app$AdvancedSearch(
  "Inbox",
  "urn:schemas:httpmail:subject LIKE 'test email executed at%'"
)

补充:等待搜索完成并处理结果

因为AdvancedSearch是异步执行的,直接获取结果可能为空,所以需要加一段等待逻辑,之后再循环处理每封匹配到的邮件和附件:

# 等待搜索完成(循环检查结果数量,直到有结果返回)
while (search$Results$Count() == 0) {
  Sys.sleep(1) # 每隔1秒检查一次
}

# 获取所有匹配的邮件结果
results <- search$Results

# 遍历结果处理每封邮件的附件
for (i in 1:results$Count()) {
  current_email <- results$Item(i)
  cat("找到匹配邮件:", current_email$Subject(), "\n")
  
  # 处理该邮件的附件
  email_attachments <- current_email$Attachments()
  if (email_attachments$Count() > 0) {
    for (j in 1:email_attachments$Count()) {
      attachment <- email_attachments$Item(j)
      # 自定义附件保存路径(这里用当前工作目录)
      save_path <- file.path(getwd(), attachment$FileName())
      attachment$SaveAsFile(save_path)
      cat("已保存附件到:", save_path, "\n")
    }
  } else {
    cat("该邮件无附件\n")
  }
}

额外提示

  • 如果需要匹配包含某段内容的主题(不管位置),可以写成urn:schemas:httpmail:subject LIKE '%test email executed at%'
  • 如果需要匹配以某段内容结尾的主题,写成urn:schemas:httpmail:subject LIKE '%test email executed at'
  • 注意查询字符串里的主题内容要用单引号包裹,这是Outlook搜索语法的要求

内容的提问来源于stack exchange,提问作者Ed Cunningham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:45:00