История изменений
Исправление
Legioner,
(текущая версия)
:
Опишу, как я сделал. В Thunderbird перемещаешь письмо в папку Junk, на сервере вызывается spamc (работает и в обратную сторону).
/etc/dovecot/conf.d/90-sieve.conf
...
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_plugins = sieve_imapsieve sieve_extprogram
...
/etc/dovecot/conf.d/90-sieve-extprograms.conf
...
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
...
/etc/dovecot/conf.d/91-imapsieve-spam.conf
plugin {
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
}
/usr/lib/dovecot/sieve/report-ham.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-ham.sh";
/usr/lib/dovecot/sieve/report-ham.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=ham --username=debian-spamd
/usr/lib/dovecot/sieve/report-spam.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-spam.sh";
/usr/lib/dovecot/sieve/report-spam.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=spam --username=debian-spamd
# sievec /usr/lib/dovecot/sieve/report-ham.sieve
# sievec /usr/lib/dovecot/sieve/report-spam.sieve
Там ещё заморочка с этим юзером. Как я понимаю, все правила для каждого юзера отдельно считаются. Я через –username=debian-spamd делаю так, чтобы все правила через этого юзера проходили. Соответственно в postfix надо тоже spamc от этого юзера запускать и в spamd разрешить чего-то:
/etc/default/spamassassin
OPTIONS="--allow-tell --create-prefs --max-children 5 --helper-home-dir --username debian-spamd"
Исправление
Legioner,
:
Опишу, как я сделал. В Thunderbird перемещаешь письмо в папку Junk, на сервере вызывается spamc (работает и в обратную сторону).
/etc/dovecot/conf.d/90-sieve.conf
...
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_plugins = sieve_imapsieve sieve_extprogram
...
/etc/dovecot/conf.d/90-sieve-extprograms.conf
...
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
...
/etc/dovecot/conf.d/91-imapsieve-spam.conf
plugin {
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
}
/usr/lib/dovecot/sieve/report-ham.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-ham.sh";
/usr/lib/dovecot/sieve/report-ham.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=ham --username=debian-spamd
/usr/lib/dovecot/sieve/report-spam.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-spam.sh";
/usr/lib/dovecot/sieve/report-spam.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=spam --username=debian-spamd
# sievec /usr/lib/dovecot/sieve/report-ham.sieve
# sievec /usr/lib/dovecot/sieve/report-spam.sieve
Там ещё заморочка с этим юзером. Как я понимаю, все правила для каждого юзера отдельно считаются. Я через –username=debian-spamd делаю так, чтобы все правила через этого юзера проходили. Соответственно в postfix надо тоже этого юзера в spamc передавать.
Исправление
Legioner,
:
Опишу, как я сделал. В Thunderbird перемещаешь письмо в папку Junk, на сервере вызывается spamc (работает и в обратную сторону).
/etc/dovecot/conf.d/90-sieve.conf
...
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_plugins = sieve_imapsieve sieve_extprogram
...
/etc/dovecot/conf.d/90-sieve-extprograms.conf
...
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
...
/etc/dovecot/conf.d/91-imapsieve-spam.conf
plugin {
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
}
/usr/lib/dovecot/sieve/report-ham.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-ham.sh";
/usr/lib/dovecot/sieve/report-ham.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=ham --username=debian-spamd
/usr/lib/dovecot/sieve/report-spam.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-spam.sh";
/usr/lib/dovecot/sieve/report-spam.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=spam --username=debian-spamd
# sievec /usr/lib/dovecot/sieve/report-ham.sieve
# sievec /usr/lib/dovecot/sieve/report-spam.sieve
Там ещё заморочка с этим юзером. Как я понимаю, все правила для каждого юзера отдельно считаются. Я через –username=debian-spamd делаю так, чтобы все правила через этого юзера проходили.
Исходная версия
Legioner,
:
Опишу, как я сделал. В Thunderbird перемещаешь письмо в папку Junk, на сервере вызывается spamc (работает и в обратную сторону).
/etc/dovecot/conf.d/90-sieve.conf
...
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_plugins = sieve_imapsieve sieve_extprogram
...
/etc/dovecot/conf.d/90-sieve-extprograms.conf
...
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
...
/etc/dovecot/conf.d/91-imapsieve-spam.conf
plugin {
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
}
/usr/lib/dovecot/sieve/report-ham.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-ham.sh";
/usr/lib/dovecot/sieve/report-ham.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=ham --username=debian-spamd
/usr/lib/dovecot/sieve/report-spam.sieve
require ["vnd.dovecot.pipe", "copy"];
pipe :copy "report-spam.sh";
/usr/lib/dovecot/sieve/report-spam.sh
#!/bin/sh
exec /usr/bin/spamc --learntype=spam --username=debian-spamd
# sievec /usr/lib/dovecot/sieve/report-ham.sieve
# sievec /usr/lib/dovecot/sieve/report-spam.sieve
Там ещё заморочка с этим юзером. Как я понимаю, все правила для каждого юзера отдельно считаются. Я через –username=debian-spamd делаю так, чтобы все правила через этого юзера проходили.
Может можно без .sh скриптов обойтись, я в этом sieve не силён.