Сито случайным образом назначает письма в папки

Я использую ситовые правила, подобные следующим, чтобы сортировать логи из обычной почты:

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, Как я могу решить это?

1 ответ

Решение

Вы ищете команду " стоп".

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

Большинство команд, включая fileinto, по своей сути не останавливают обработку. Дальнейшие правила будут обработаны и сопоставлены, если вы явно не выполните команду "стоп". В общем, если вы уверены, что у вас есть сообщение, куда вы хотите его отправить, вы, вероятно, захотите запустить stop; так что дальнейшие части сценария сита не запускаются.

Другие вопросы по тегам