ОС: FreeBSD 9
Навесил плагин к локальному доставщику давкота.
Скрипт следующего содержания:
Код: Выделить всё
require "fileinto";
if anyof (header :contains "Subject" "SPAM")
{
redirect "spam@mydomain.ru";
}
else
{
keep;
}
Получаю возврат, т.е. письмо не доходит, а возвращается адресату.
При этом, если тема письма валидная, то все замечательно.
В Логах следующее:
Тут мы письмо получили:
Код: Выделить всё
Aug 29 13:52:35 deliver(test): Info: Loading modules from directory: /usr/local/lib/dovecot/lda
Aug 29 13:52:35 deliver(test): Info: Module loaded: /usr/local/lib/dovecot/lda/lib90_sieve_plugin.so
Aug 29 13:52:35 deliver(test): Info: maildir: data=/usr/home/test/.maildir
Aug 29 13:52:35 deliver(test): Info: maildir++: root=/usr/home/test/.maildir, index=, control=, inbox=/usr/home/test/.maildir
Aug 29 13:52:35 deliver(test): Info: sieve: user's script path /usr/home/test/.dovecot.sieve doesn't exist (using global script path in stead)
Aug 29 13:52:35 deliver(test): Info: sieve: user has no valid personal script
Aug 29 13:52:35 deliver(test): Info: sieve: executed before user's script(1): /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(test): Info: sieve: opening script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(test): Info: sieve: executing compiled script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(test): Info: sieve: mail from test@mydomain.ru: forwarded to <spam@mydomain.ru>
Aug 29 13:52:35 deliver(spam): Info: Loading modules from directory: /usr/local/lib/dovecot/lda
Aug 29 13:52:35 deliver(spam): Info: Module loaded: /usr/local/lib/dovecot/lda/lib90_sieve_plugin.so
Aug 29 13:52:35 deliver(spam): Info: maildir: data=/usr/home/spam//.maildir
Aug 29 13:52:35 deliver(spam): Info: maildir++: root=/usr/home/spam//.maildir, index=, control=, inbox=/usr/home/spam//.maildir
Aug 29 13:52:35 deliver(spam): Info: sieve: user's script path /usr/home/spam//.dovecot.sieve doesn't exist (using global script path in stead)
Aug 29 13:52:35 deliver(spam): Info: sieve: user has no valid personal script
Aug 29 13:52:35 deliver(spam): Info: sieve: executed before user's script(1): /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(spam): Info: sieve: opening script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(spam): Info: sieve: executing compiled script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:35 deliver(spam): Info: sieve: mail from test@mydomain.ru: forwarded to <spam@mydomain.ru>
Код: Выделить всё
Aug 29 13:52:36 deliver(test): Info: Loading modules from directory: /usr/local/lib/dovecot/lda
Aug 29 13:52:36 deliver(test): Info: Module loaded: /usr/local/lib/dovecot/lda/lib90_sieve_plugin.so
Aug 29 13:52:36 deliver(test): Info: maildir: data=/usr/home/test/.maildir
Aug 29 13:52:36 deliver(test): Info: maildir++: root=/usr/home/test/.maildir, index=, control=, inbox=/usr/home/test/.maildir
Aug 29 13:52:36 deliver(test): Info: sieve: user's script path /usr/home/test/.dovecot.sieve doesn't exist (using global script path in stead)
Aug 29 13:52:36 deliver(test): Info: sieve: user has no valid personal script
Aug 29 13:52:36 deliver(test): Info: sieve: executed before user's script(1): /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:36 deliver(test): Info: sieve: opening script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:36 deliver(test): Info: sieve: executing compiled script /usr/local/lib/dovecot/lda/before.sieve
Aug 29 13:52:36 deliver(test): Info: Namespace : Using permissions from /usr/home/test/.maildir: mode=0700 gid=-1
Aug 29 13:52:36 deliver(test): Info: sieve: mail from MAILER-DAEMON@mydomain.ru: stored mail into mailbox 'INBOX'
Смотрим в отчет о доставке и видим:
Код: Выделить всё
<spam@mydomain.ru>: mail forwarding loop for spam@mydomain.ru
Код: Выделить всё
require "fileinto";
if address :is "to" "spam@mydomain.ru" {
stop;
} elsif anyof (header :contains "Subject" "SPAM") {
redirect "spam@mydomain.ru";
} else {
keep;
}