Назад | Перейти на главную страницу

Exim с поиском MySQL с использованием регулярного выражения

У меня есть следующий рабочий Exim4 Router:

dovecot_user:
  driver = accept
    condition = ${lookup mysql{SELECT CONCAT(mailboxes.local_part,'@',domains.fqdn) AS goto FROM domains,mailboxes WHERE \
               mailboxes.local_part='${quote_mysql:$local_part}' AND \
               mailboxes.active=1 AND \
               mailboxes.domain_id=domains.id AND \
               domains.fqdn='${quote_mysql:$domain}' AND \
               domains.active=1}{yes}{no}}
 transport = dovecot_delivery

Я хотел бы изменить его так, чтобы он мог принимать адреса форм (и затем доставлять их crm-bounce входящие):

crm-bounce@domain.tld
crm-bounce+bounce_59510d24bce66@domain.tld

Я знаю, что следующий SQL правильно выбирает из тестовой базы данных:

SELECT * FROM regexptest.test WHERE email REGEXP '^crm-bounce([\+].*)?$';

Я изменил строку:

mailboxes.local_part='${quote_mysql:$local_part}' AND \

так, чтобы он читал:

mailboxes.local_part REGEXP '^${quote_mysql:$local_part}([\+].*)?\$' AND \

но при беге exim -bt crm-bounce+b@domain.tld я получил undeliverable: Unrouteable address

Похоже, я все делал неправильно. Мне нужно включить суффикс local_part в маршрутизаторе, добавив:

local_part_suffix = +*
local_part_suffix_optional