我正在try 使用node-imap包从我的草稿文件夹中搜索邮箱

所以我的文件所做的是,它使用了基于主题的IMAP搜索功能,并且由于主题的数量是动态的,所以我们在移动中构建搜索查询.

以下是一个示例搜索查询

[
    'UNDELETED',
    [
      'OR',
      [
        'OR',
        [
          'OR',
          [ 'SUBJECT', '<My Subject 3>' ],
          [ 'SUBJECT', ' <My Subject 2>  ' ]
        ],
        [ 'SUBJECT', '<My Subject 1>' ]
      ],
      [ 'SUBJECT', 'abc' ]
    ]
]

现在,到目前为止,它运行得很好.但是,如果主题字段为空,并且我重写了相同的代码,如下所示,我将得到Error: infeasible query (Failure)

[
    'UNDELETED',
    [
      'OR',
      [
        'OR',
        [
          'OR',
          [ 'SUBJECT', '<My Subject 3>' ],
          [ 'SUBJECT', ' <My Subject 2>  ' ]
        ],
        [ 'SUBJECT', '<My Subject 1>' ]
      ],
      [ 'SUBJECT', '' ]
    ]
]

我已经试过用null替换'',也把它留空,但无济于事.在这件事上的任何帮助都将不胜感激.

推荐答案

RFC 9051 section 6.4.4表示:在所有使用字符串的搜索关键字中,除非另有说明,否则消息与关键字if the string is a substring of the associated text.匹配

空字符串是每个(其他)字符串的子字符串,因此您的搜索意味着"任何主题".我知道这不可行.

根据您要执行的操作,如果您有合适的foo值,则可能会将搜索重写为使用NOT SUBJECT "foo".

Javascript相关问答推荐

如何将连续的十六进制字符串拆分为以空间分隔的十六进制块,每个十六进制块包含32个二元组?

我们如何从一个行动中分派行动

屏幕右侧屏障上的产卵点""

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

Eval vs函数()返回语义

为什么JPG图像不能在VITE中导入以进行react ?

一个实体一刀VS每个实体多刀S

回溯替代方式

如何在Java脚本中对列表中的特定元素进行排序?

为什么在函数中添加粒子的速率大于删除粒子的速率?

将基元传递给THEN处理程序

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

将范围 Select 器添加到HighChart面积图

在GraphQL解析器中修改上下文值

JavaScript将字符串数字转换为整数

为什么我看到的是回复,而不是我的文档?

Chart.js Hover线条在鼠标离开时不会消失

如何将字符串拆分成单词并跟踪每个单词的索引(在原始字符串中)?

如何使用fltter_js将对象作为参数传递给javascrip?

如何从图表中映射一组图表-js使用REACT