Здравствуйте, Alexander
понедельник 9 сентября 2013 г., 14:17:30, вы писали:
> Здравствуйте, Alexander.
> Вы писали 9 сентября 2013 г., 19:56:33:
>> Здравствуйте, Exim-users.
>> Переезжал на новый сервер с exim. На нем есть такой роутер
>> virtual_domains:
>> driver = redirect
>> allow_fail
>> data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM
>> public.mailbox \
>> WHERE local_part = '${quote_pgsql:$local_part}' \
>> AND domain = '${quote_pgsql:$domain}' \
>> AND active = 't'}}
>> local_part_suffix = -*
>> local_part_suffix_optional
>> retry_use_local_part
>> directory_transport = virtual_delivery
>> reply_transport = address_reply
>> pipe_transport = address_pipe
>> Выяснилось, что quote_pgsql эскейпит '%' и '_'.
>> Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо
>> строить запрос?
>> Вообще убрать quote_pgsql и делать проверки самим exim?
> 1) не знал что постгресс умеет такие дисковые операции...
> 2) на больших объемах почты оно может в тупую жрать проц и дисковые
> IO поскольку как я понимаю каждый раз считается объем всех файлов в
> maildir, а не парсится maildirsize. А с учетом того что файлов в
> maildir может быть много результат будет плачевный.
Может, я где-то наверно выразился. Там всего-лишь ищутся виртуальные
пользователи. Размеры maildir'ов не считаются.
Насколько я понял у меня вот такая ситуация
http://www.exim.org/lurker/message/20120106.225316.cce8b71d.en.html
Т.к. решение не обсуждалось, предположил, что участникам того треда
оно понятно, а я чего-то не знаю и не понимаю.
У меня сейчас единственная проблема в том, что есть несколько учетных
записей с _ в localpart и exim их не находит из-за quote_pgsql.
Вот! Похоже, моим решением будет http://bugs.exim.org/show_bug.cgi?id=932
Т.е. роутер будет выглядеть так
virtual_domains:
driver = redirect
allow_fail
data = ${lookup pgsql{SELECT concat('/var/mail/',maildir) FROM public.mailbox
\
WHERE local_part = E'${quote_pgsql:$local_part}' \
AND domain = E'${quote_pgsql:$domain}' \
AND active = 't'}}
local_part_suffix = -*
local_part_suffix_optional
retry_use_local_part
directory_transport = virtual_delivery
reply_transport = address_reply
pipe_transport = address_pipe
> 3) я написал скрипт на перле который парсит maildirsize и кэширует
> данные избирательно в зависимости от текущего объема maildir. Работает
> с exim через unix socket. Если надо могу выслать.
--
С наилучшими пожеланиями (73),
AID1-UANIC AID-EUNIC
Тел: +38 (044) 4619175, 4943810
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users