我使用如下的筛选规则从普通邮件中对日志进行排序:
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'
我的问题是邮件会随机分为asdf
或asdf.logs
。
我该如何解决这个问题?
答案 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;
以便不再运行筛选脚本的其他部分。