Gmail 邮件的复杂 FROM 条件

Complex FROM condition for Gmail messages

我必须根据以下基于发件人字段的复杂查询移动到垃圾邮件 Gmail 邮件:

var qyr = '{from:(*@mail.ru -sender1@mail.ru -sender2@mail.ru -sender3@mail.ru )' + 
          ' from:(*@yandex.ru)}';
var threads = GmailApp.search(query=qyr, start=0, max=500)
for (var i = 0; i < threads.length; i++) {
  GmailApp.moveThreadToSpam(threads[i]);
}

但此代码无法正常工作。
如果我只留下第一行(使用 mail.ru)或第二行(使用yandex.ru) 单独它工作正常。当我将它们结合起来时,它只获取 mail.ru 消息。
根据 operator manual,如果我想让 OR 合乎逻辑,我应该明确地放置 OR 或在大括号内设置两个 FROM。带有直接 OR 的变体也不起作用
我做错了什么?

我在 Apps 脚本问题跟踪人员的帮助下解决了这个问题。 我在连接中缺少 spaces。此外,切换到单个 from 子句使查询更加简洁。

上面语句的正确形式应该是这样的:

var qyr = '{from: ' + 
        ' ((@mail.ru ' +
        ' -sender1@mail.ru -sender2@mail.ru -sender3@mail.ru) ' + 
        ' OR ' +
        ' (@yandex.ru -sender1@yandex.ru) ' +
        ' )} ';