У меня есть следующий рабочий 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