Exim долго доставляет почту
Добавлено: 2010-04-23 15:14:28
Здравствуйте коллеги. Имеется Exim 4.69 запущенный на Fedora 11. К exim`у прикручен Dr.Web`овский антивирус и антиспам (версии 5.0.1.3 если что). Имеется проблема: Exim после проверки письма Dr.Web`ом по пол часа "маринует" письма в очереди и лишь затем доставляет. Как мне кажется, проблема вызвана каким то косяком в конфигурации моего Exim`а, а потому задаю этот вопрос здесь.
В exim.conf добавлены следующие строки:
Может возникнуть вопрос зачем нужен acl_check_drweb_scanned? А нужен он для Dr.Web`а: когда тот пытается вернуть письмо назад в Exim, то Exim может задуматься на минуту-две и Dr.Web отвалится по таймауту. Можно конечно ставить большие таймауты, но это не дело. Dr.Web`овским саппортом было предложено настроить Exim таким образом, что бы он отправлял все полученные от Dr.Web`а письма сначала в очередь и только потом производил доставку.
Вопрос: как бы сделать так, что бы Exim не мариновал письма по пол часа в очереди, а доставлял их через минут нахождения в ней? Лучше так, что бы вообще сразу.
З.Ы. Пока придумал жуткий workaround, который заключается в том, что я по cron`у раз в минуту запускаю вот такой скрипт:
который понятно что делает 
Жесть конечно, но что то совсем сломал голову об документацию Exim`а как сделать всё грамотно
З.З,Ы. На всякий случай прицепил свой exim.conf (Ахтунг! Там комменты на русском в UTF8)
В exim.conf добавлены следующие строки:
Код: Выделить всё
trusted_users = drweb
...
acl_not_smtp = acl_check_drweb_scanned
...
begin acl
acl_check_drweb_scanned:
warn
condition = ${if and {{def:received_protocol}{eq {${received_protocol}} {drweb-scanned}}} {yes}{no}}
control = queue_only
accept
...
begin routers
# This router routes messages to drweb maild checking transport
drweb_router:
driver = accept
condition = "${if eq {$received_protocol}{drweb-scanned}{0}{1}}"
no_verify
retry_use_local_part
transport = drweb_transport
...
begin transports
# This transport is used for checking messages in drweb maild
drweb_transport:
driver = lmtp
socket = /var/drweb/ipc/.drweb_maild
batch_max = 100
timeout = 5m
user = drweb
headers_add = "X-Maild-Checked: DrWEB for Exim"
...
Вопрос: как бы сделать так, что бы Exim не мариновал письма по пол часа в очереди, а доставлял их через минут нахождения в ней? Лучше так, что бы вообще сразу.
З.Ы. Пока придумал жуткий workaround, который заключается в том, что я по cron`у раз в минуту запускаю вот такой скрипт:
Код: Выделить всё
exiqgrep -i | xargs exim -M
Жесть конечно, но что то совсем сломал голову об документацию Exim`а как сделать всё грамотно
З.З,Ы. На всякий случай прицепил свой exim.conf (Ахтунг! Там комменты на русском в UTF8)