postfix dovecot sieve алиасы и копии писем

Автор zCirill, 12 апреля 2016, 23:21:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

zCirill

Добрый день.

Используется debian 7 postfix dovecot amavis + sieve для фильтрации писем по заголовкам

Например перенаправление спама

if header :contains "X-Spam-Flag" "YES" {
    redirect "spamspot@domain.ru";
    stop;
}


Есть ящик с несколькими алиасами.
Например ящик store@domain.ru
алиас 1 - ao@domain.ru
алиас 2 qa@domain.ru

Если отправлять письмо на эти алиасы - в ящик store придет два одинаковых письма.

И вот в чем проблема, если письмо пришедшее на алисы, помеченно как спам, sieve обработает будет только первое письмо!
А второе письмо ляжет в ящик.

Никто не сталкивался с такой ситуацией? Как sieve обрабатывать все письма?

endru

zCirill, для алиасов лучше использовать postfix -> postalias.
теперь о sieve - у тебя в условиях стоит stop - это значит - если у тебя несколько условий, или несколько правил, то их обработка закончится при первом перенаправлении на почту spamspot
чтобы этого избежать составляй цепочку условий, например:
require "fileinto";
if header :contains "X-Spam-Level" "******" {
  discard;
}elsif anyof (header :contains "X-Spam-Flag" "YES",
                header :contains "X-Mras" "PROBABLE_SPAM",
                header :contains "Received-SPF" "Softfail"){
  fileinto "Junk";
}

если score SA больше 6 - не сохранять письмо, иначе если любое из условий верное - переместить письмо в Junk(спам).

и на будущее - предоставляй свои полные конфиги, чтобы можно было точно подсказать.

zCirill

больше условий нет.

проблема в том, что оба письма помечены как спам - X-Spam-Flag = YES
первое письмо - обрабатывается правилом.
второе не обрабатывается.

о, похоже нашел в логах причину - duplicate forward

dovecot: lda(storage@domain.ru): sieve: msgid=<0ac501d19525$c186f1b0$715a8c84@yjpyhft>: forwarded to <spamspot@domain.ru>
dovecot: lda(storage@domain.ru): sieve: msgid=<0ac501d19525$c186f1b0$715a8c84@yjpyhft>: discarded duplicate forward to <spamspot@domain.ru>

endru

это то, о чем я писал выше.
перенаправления на уровне dovecot-lda может вызывать проблемы, поэтому проще пользоваться postfix - postalias.

zCirill

алиасы реализованы силами postfix.
перенаправление на уровне dovecot-lda вызывается sieve уже после получения письма.

о, возможно проблема в том, что это ящик в этом же домене и поэтому сервер выбирает наиболее короткий путь с доставкой письма через lda.


endru

не думаю. dovecot-lda не хочет одно и тоже письмо на один ящик отправлять.
зачем вообще их перенаправлять на другую почту? почему нельзя использовать папку Спам в почтовом ящике?

zCirill

собственно так и есть.

sieve берет письмо.
пихает его в lda
lda не хочет дубликат отправлять, и в ряде! случаев это письмо сохраняется, вместо того, чтобы дропнуться.
вот это, блин, открытие )

*почему нельзя использовать папку Спам в почтовом ящике?*
уходит в спам-отстойник, где специально обученный человек периодически просматривает спам это или не спам, принимает решение, удалить или отправить в обучение, что не спам, и переслать получателю.