[Exim-users] quote_pgsql и _ в localpart
Здравствуйте, 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? -- С наилучшими пожеланиями (73), AID1-UANIC AID-EUNIC Тел: +380 (44) 4619175, 4943810 ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
Здравствуйте, 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 может быть много результат будет плачевный. 3) я написал скрипт на перле который парсит maildirsize и кэширует данные избирательно в зависимости от текущего объема maildir. Работает с exim через unix socket. Если надо могу выслать. -- С уважением, Alexander mailto:t...@irk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
мое лично имхо, если у Вас сервер для одной конторы, то ставить квоты на ящики как минимум странно - проще винты докупить. 9 сентября 2013 г., 13:56 пользователь Alexander Koval ko...@machouse.ua написал: Здравствуйте, 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? -- С наилучшими пожеланиями (73), AID1-UANIC AID-EUNIC Тел: +380 (44) 4619175, 4943810 ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
On 09.09.2013 14:56, Alexander Koval wrote: Выяснилось, что quote_pgsql эскейпит '%' и '_'. Допустимо ли в условии WHERE поменять '=' на like или как-то по-другому надо строить запрос? Вообще убрать quote_pgsql и делать проверки самим exim? Боюсь, без эксперимента никак. В крайнем случае, можно поменять = не на like, а на ~* и использовать extended regexp. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
Здравствуйте, 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 Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
мне стыдно :) решил что вопрос о квотах 2) на больших объемах почты оно может в тупую жрать проц и дисковые IO поскольку как я понимаю каждый раз считается объем всех файлов в maildir, а не парсится maildirsize. А с учетом того что файлов в maildir может быть много результат будет плачевный. Может, я где-то наверно выразился. Там всего-лишь ищутся виртуальные пользователи. Размеры maildir'ов не считаются. Насколько я понял у меня вот такая ситуация http://www.exim.org/lurker/message/20120106.225316.cce8b71d.en.html Т.к. решение не обсуждалось, предположил, что участникам того треда оно понятно, а я чего-то не знаю и не понимаю. У меня сейчас единственная проблема в том, что есть несколько учетных записей с _ в localpart и exim их не находит из-за quote_pgsql. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] quote_pgsql и _ в localpart
Здравствуйте, Lystopad. Вы писали 9 сентября 2013 г., 22:15:36: Hello, Alexander Titaev! 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'}} ... 2) на больших объемах почты оно может в тупую жрать проц и дисковые IO поскольку как я понимаю каждый раз считается объем всех файлов в maildir, а не парсится maildirsize. А с учетом того что файлов в maildir может быть много результат будет плачевный. Судя по http://www.postgresql.org/docs/9.1/static/functions-string.html concat('/var/mail/',maildir) -- соединяет аргументы, а не считает объем всех файлов. Или я недосмотрел? да я видимо не один тормознул ;) -- С уважением, Alexander mailto:t...@irk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users