Код: Выделить всё
${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}}}{yes}{no}}
Код: Выделить всё
${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}
Модератор: xM
Код: Выделить всё
${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}}}{yes}{no}}
Код: Выделить всё
${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}
Alex Keda писал(а):показывайте, как пытаетесь
Код: Выделить всё
message_copy_mini_spam:
driver = redirect
domains = +local_domains
condition = ${if and {{{>{$acl_m0}{0}}{<{$acl_m0}{60}}} \
{${lookup mysql{SELECT username from mailbox WHERE \
username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}{yes}{no}}
data = test@example.com
unseen
Код: Выделить всё
2010-07-24 10:00:52 [21954] failed to expand condition "${if and {{{>{$acl_m0}{0}}{<{$acl_m0}{60}}} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}{yes}{no}}" for message_copy_mini_spam router: condition name expected, but found "{>{$acl_m0}{0}}{" inside "and{...}" condition
Код: Выделить всё
${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}} \
{lookup mysql{SELECT username from mailbox WHERE \
username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}}
Код: Выделить всё
2010-07-24 11:06:45 [22890] failed to expand condition "${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}} {lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}}" for message_copy_mini_spam router: unknown condition "lookup" inside "and{...}" condition
Код: Выделить всё
${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}} \
${lookup mysql{SELECT username from mailbox WHERE \
username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}}
Код: Выделить всё
2010-07-24 11:10:43 [23010] failed to expand condition "${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}} ${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}}" for message_copy_mini_spam router: each subcondition inside an "and{...}" condition must be in its own {}
Так простое двойное условие работает, помог составить dikens3 - http://forum.lissyara.su/viewtopic.php?f=20&t=26980Alex Keda писал(а):чё-то у вас странное понаписано.
попробуйте простые условия скомбинировать, а потом лукап туда воткнуть
он, ксати,будет как mysql заучать, помоему.
так что вам ещё и в доку, за примерами.
Код: Выделить всё
message_copy_mini_spam:
driver = redirect
domains = +local_domains
condition = ${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}}}{yes}{no}}
condition = ${if eq{} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}}
data = test@example.com
unseen
Дело в том, что в роутерах два кондишена задавать нельзя.Urgor писал(а):А если так переписать:Код: Выделить всё
message_copy_mini_spam: driver = redirect domains = +local_domains condition = ${if and {{>{$acl_m0}{0}}{<{$acl_m0}{60}}}{yes}{no}} condition = ${if eq{} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}{yes}{no}} data = test@example.com unseen
Код: Выделить всё
${if and {\
{>{$acl_m0}{0}} \
{<{$acl_m0}{60}} \
{$eq{} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}\
}\
}
blade_007 писал(а):Попробуйте так.
Код: Выделить всё
${if and {\ {>{$acl_m0}{0}} \ {<{$acl_m0}{60}} \ {$eq{} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}\ }\ }
Код: Выделить всё
2010-07-26 11:08:59 [21998] failed to expand condition "${if and {{>{$acl_m0}{0}} {<{$acl_m0}{60}} {$eq{} {${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}}}" for message_copy_mini_spam router: condition name expected, but found "$eq{} {${lookup " inside "and{...}" condition
А что там уточнять?Заодно уточните в доке 11.7 и 11.8
and {{<cond1>}{<cond2>}...}
Подусловия оцениваются слева направо. Условие исинно, если все подусловия верны. Если тут несколько подусловий “match”, то значения числовых переменных берутся от последнего. Если найдено ложное подусловие, то остальные парсятся, но не оцениваются.
Код: Выделить всё
${if and{{>{20}{0}}{eq{1}{${lookup mysql{SELECT 1 from users WHERE id='jack'}}}}}}
Код: Выделить всё
condition = ${if and {\
{eq{$acl_m3}{0}}\
{>{$acl_m0}{0}}\
{<{$acl_m0}{60}}\
{!eq{}{${lookup mysql{SELECT username from mailbox WHERE username='${quote_mysql:$local_part@$domain}' AND active='1'}}}}\
}}