Sieve随机将邮件分配给文件夹

时间:2018-03-30 16:23:37

标签: sieve-language

我使用如下的筛选规则从普通邮件中对日志进行排序:

require ["fileinto", "envelope", "subaddress", "variables", "mailbox"];
# rule:[asdf-logs]
if anyof (address "From" "nagios@mail.com", address "From" "root@mail.com", address "To" "root@mail.com")
{
    fileinto "INBOX.asdf.logs";
}
# rule:[asdf]
if anyof (header :contains "Delivered-To" "my@mail.com", header :contains "cc" "asdf@mail.com", header :contains "to" "asdf@mail.com")
{
    fileinto "INBOX.asdf";
}

现在,如果某些邮件从nagios@mail.com发送到my@mail.com,则可能会产生以下两种结果:

filing message into 'INBOX.asdf.logs'
filing message into 'INBOX.asdf'

我的问题是邮件会随机分为asdfasdf.logs。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您正在寻找" stop"命令。

if anyof (address "From" "nagios@mail.com", address "From" "root@mail.com", address "To" "root@mail.com")
{
    fileinto "INBOX.asdf.logs";
    stop;
}

大多数命令,包括" fileinto",都不会固有地停止处理。除非您明确执行" stop"否则将处理和匹配其他规则。命令。一般情况下,一旦您确定要将消息提交到您想要的位置,您可能希望运行stop;以便不再运行筛选脚本的其他部分。