[exim-conf] доработки поддержки персональных карантинов

Victor Ustugov victor на corvax.kiev.ua
Чт Мар 8 21:26:18 EET 2012


Victor Ustugov wrote:

> 2. roundcube + vacation plugin
> 
> последний vacation plugin, до которого удалось добраться, был версии 1.9.9
> 
> пришлось его немного допилить. вот патч:
> http://mta.org.ua/roundcube/patches/vacation-1.9.9/patch-vacation-1.9.9-sieve.patch
> 
> содержимое sieve скрипта автоответчика будет выглядеть примерно так:
> 
> 
> require ["fileinto", "reject", "vacation", "copy"];
> # rule:[vacation]
> if allof (header :contains "X-Spam-Flag" "YES") {
>         keep;
> } elsif allof (header :contains "X-Quarantined" "YES") {
>         keep;
> } elsif allof (header :contains [ "To", "Cc" ] "corvax на mx.org.ua") {
>         vacation :subject "Автоответ" "Приветствую.
> Меня сейчас нет на рабочем месте.
> Я прочту Ваше сообщение как только смогу.
> Спасибо за понимание.
> ";
>         keep;
> } else {
>         keep;
> }
> 
> 
> 3. написанный вручную sieve скрипт.
> 
> при написании sieve скрипта вручную можно доставить спамовые письма в
> персональный карантин самостоятельно:
> 
> 
> require ["fileinto", "vacation"];
> if header :contains "X-Spam-Flag" "YES" {
>         fileinto "Junk";
>         stop;
> }
> if header :contains "X-Quarantined" "YES" {
>         fileinto "Junk";
>         stop;
> }
> # rule:[автоответчик]
> vacation :subject "Автоответчик" text:
> Меня сейчас нет на рабочем месте.
> Я прочту Ваше сообщение как только смогу.
> Спасибо за понимание.
> .
> ;
> 
> 
> письма с полями X-Spam-Flag и X-Quarantined, в значении которых есть
> слово "YES", можно и не доставлять самостоятельно в фолдер Junk, т. к.
> этот фолдер будет указан exim'ом доставщику.
> 
> пример значения confVIRT_MDIR_PIPE_PERSONAL_QUARANTINE для dovecot'а на
> FreeBSD:
> 
> define(`confVIRT_MDIR_PIPE_PERSONAL_QUARANTINE',
> `/usr/local/libexec/dovecot/deliver -d $local_part@$domain -m Junk')dnl


для вручную написанных sieve скриптов есть еще вариант использования
инклуда из глобального каталога для доставки спамовых писем в
персональные карантины.

пример для dovecot:

в /usr/local/etc/dovecot/conf.d/90-sieve.conf в секции plugin указываем:

sieve_global_dir = /usr/local/etc/dovecot/sieve/

в каталоге /usr/local/etc/dovecot/sieve/ создаем скрипт
global-spam.sieve со следующим содержимым:


require ["fileinto"];
if header :contains "X-Spam-Flag" "YES" {
        fileinto "Junk2";
        stop;
}
if header :contains "X-Quarantined" "YES" {
        fileinto "Junk2";
        stop;
}



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


require ["include", "vacation"];
include :global "global-spam.sieve";
# rule:[автоответчик]
vacation :subject "Автоответчик" text:
Меня сейчас нет на рабочем месте.
Я прочту Ваше сообщение как только смогу.
Спасибо за понимание.
.
;


в принципе, тоже самое можно использовать и в связке roundcube +
vacation plugin, указав в plugins/vacation/lib/sieve.class.php в коде
функции setVacation в значении переменной $script код включения инклуд
файла из глобального каталога.

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




Подробная информация о списке рассылки exim-conf