筛选消息内容不明确的电子邮件

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

我从外部监控服务收到包含消息body的电子邮件,其中包含随机数量的警告:

foo
warning X
bar
warning X
...

或者:

warning X
warning Y
foo
warning X
bar
warning Z
...

警告 X 无关紧要,但所有其他警告都很重要。 X 是已知类型 - 所有其他类型都可以是任何类型。

如果电子邮件仅包含

warning X
行,我可以安全地将其丢弃。筛子脚本很简单:

if body :contains "warning X" {
      fileinto :create "INBOX.Trash";
}

但是,当消息包含

warning X
其他警告时,脚本会丢弃该消息,而我会错过其中的所有其他警告,这是不可接受的。

如何丢弃所有专门包含 X 类型警告的消息?


如果我有正则表达式,我可以检查类似

"warning [^X]"
的内容,但到目前为止我无法找到任何方法在 sieve 中表达这一点。

我想到的下一件事是将

"warning X"
的出现次数与
"warning "
的出现次数进行比较。如果它们相等,则意味着每个警告实际上都是
X
类型。然而,
:count
表达式似乎不适用于消息体,而且似乎只与硬编码整数进行比较。

email filtering dovecot sieve-language
1个回答
0
投票

发布问题后不久,我意识到我确实有正则表达式

require ["body", "fileinto", "mailbox", "regex"];

if not body :regex "warning [^X]" {
    fileinto :create "INBOX.Trash";
}

这个脚本似乎达到了预期的效果。

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