From 390485881883716df0b624079fd3636320af4150 Mon Sep 17 00:00:00 2001 From: Baptiste Richard Date: Thu, 22 Jun 2023 09:17:33 +0200 Subject: [PATCH] Closes #6531 --- .../tpl/mysql-virtual_forwardings.cf.master | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/install/tpl/mysql-virtual_forwardings.cf.master b/install/tpl/mysql-virtual_forwardings.cf.master index 8607735c93..fd75e19234 100644 --- a/install/tpl/mysql-virtual_forwardings.cf.master +++ b/install/tpl/mysql-virtual_forwardings.cf.master @@ -2,10 +2,16 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} -query = SELECT s.destination AS target FROM mail_forwarding AS s - WHERE (s.source = '%s' OR s.source = {address_without_extension}) AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id} - UNION - SELECT s.destination AS target FROM mail_forwarding AS s - WHERE s.source = '@%d' AND s.type = 'catchall' AND s.active = 'y' AND s.server_id = {server_id} - AND NOT EXISTS (SELECT email FROM mail_user WHERE (email = '%s' OR email = {address_without_extension}) AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) AND server_id = {server_id}) - AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE (source = '%s' OR source = {address_without_extension}) AND active = 'y' AND server_id = {server_id}) +query = SELECT email AS target FROM mail_user + WHERE (email = '%s' OR email = {address_without_extension}) AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) AND server_id = {server_id} + UNION + SELECT s.destination AS target FROM mail_forwarding AS s + WHERE (s.source = '%s' OR s.source = {address_without_extension}) AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id} + UNION + SELECT s.destination AS target FROM mail_forwarding AS s + WHERE {address_without_extension} LIKE REPLACE(s.source,'*','%%') AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id} + UNION + SELECT s.destination AS target FROM mail_forwarding AS s + WHERE s.source = '@%d' AND s.type = 'catchall' AND s.active = 'y' AND s.server_id = {server_id} + LIMIT 1 + -- GitLab