Skip to content

Commit 1536e8b

Browse files
committed
mail_forwardings alias/forward/catchall, aliasdomains in virtual_alias_{maps,domains}
1 parent 80603de commit 1536e8b

10 files changed

+31
-27
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ function configure_postfix($options = '')
6363
//* mysql-virtual_forwardings.cf
6464
$this->process_postfix_config('mysql-virtual_forwardings.cf');
6565

66+
//* mysql-virtual_alias_domains.cf
67+
$this->process_postfix_config('mysql-virtual_alias_domains.cf');
68+
6669
//* mysql-virtual_mailboxes.cf
6770
$this->process_postfix_config('mysql-virtual_mailboxes.cf');
6871

install/dist/lib/opensuse.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ function configure_postfix($options = '')
6363
//* mysql-virtual_forwardings.cf
6464
$this->process_postfix_config('mysql-virtual_forwardings.cf');
6565

66+
//* mysql-virtual_alias_domains.cf
67+
$this->process_postfix_config('mysql-virtual_alias_domains.cf');
68+
6669
//* mysql-virtual_mailboxes.cf
6770
$this->process_postfix_config('mysql-virtual_mailboxes.cf');
6871

install/lib/installer_base.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,9 @@ public function configure_postfix($options = '') {
960960
//* mysql-virtual_forwardings.cf
961961
$this->process_postfix_config('mysql-virtual_forwardings.cf');
962962

963+
//* mysql-virtual_alias_domains.cf
964+
$this->process_postfix_config('mysql-virtual_alias_domains.cf');
965+
963966
//* mysql-virtual_mailboxes.cf
964967
$this->process_postfix_config('mysql-virtual_mailboxes.cf');
965968

install/tpl/debian_postfix.conf.master

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
22
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
3-
virtual_alias_domains =
4-
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
3+
virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf
4+
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
55
virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf
66
virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf
77
virtual_mailbox_base = {vmail_mailbox_base}

install/tpl/fedora_postfix.conf.master

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
virtual_alias_domains =
2-
virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
1+
virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf
2+
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
33
virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf
44
virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf
55
virtual_mailbox_base = {vmail_mailbox_base}

install/tpl/gentoo_postfix.conf.master

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
virtual_alias_domains =
2-
virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
1+
virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf
2+
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
33
virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf
44
virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf
55
virtual_mailbox_base = {vmail_mailbox_base}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
user = {mysql_server_ispconfig_user}
2+
password = {mysql_server_ispconfig_password}
3+
dbname = {mysql_server_database}
4+
hosts = {mysql_server_ip}
5+
query = SELECT destination FROM mail_forwarding
6+
WHERE source = '@%d' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id}

install/tpl/mysql-virtual_domains.cf.master

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ user = {mysql_server_ispconfig_user}
22
password = {mysql_server_ispconfig_password}
33
dbname = {mysql_server_database}
44
hosts = {mysql_server_ip}
5-
query = select domain from mail_domain where domain = '%s' and active = 'y' and server_id = {server_id}
5+
query = SELECT domain FROM mail_domain WHERE domain = '%s' AND active = 'y' AND server_id = {server_id}
6+
AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '@%s' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id})

install/tpl/mysql-virtual_forwardings.cf.master

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,10 @@ user = {mysql_server_ispconfig_user}
22
password = {mysql_server_ispconfig_password}
33
dbname = {mysql_server_database}
44
hosts = {mysql_server_ip}
5-
query = SELECT u.email as target FROM mail_forwarding as s
6-
INNER JOIN mail_user as u ON (u.email = CONCAT('%u@', SUBSTRING_INDEX(s.destination,'@',-1)))
7-
WHERE s.source = '@%d' AND s.type = 'aliasdomain' AND s.active = 'y' AND u.disabledeliver = 'n' AND s.server_id = {server_id}
5+
query = SELECT s.destination AS target FROM mail_forwarding AS s
6+
WHERE s.source = '%s' AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id}
87
UNION
9-
SELECT s.destination as target FROM mail_forwarding as s
10-
WHERE s.source = '%s' AND s.type IN ('alias', 'forward') and s.active = 'y' AND s.server_id = {server_id}
11-
UNION
12-
SELECT s.destination as target FROM mail_forwarding as s
13-
INNER JOIN mail_forwarding as f ON (f.source = CONCAT('%u@', SUBSTRING_INDEX(s.destination,'@',-1)))
14-
WHERE s.source = '@%d' AND s.type = 'aliasdomain' AND s.active = 'y' AND f.active = 'y' AND s.server_id = {server_id}
15-
UNION
16-
SELECT s.destination as target FROM mail_forwarding as s
17-
LEFT JOIN mail_user as uu ON (uu.email = '%s' AND uu.disabledeliver = 'n')
18-
LEFT JOIN mail_forwarding as uf ON (uf.source = '%s' AND uf.type IN ('alias', 'forward') AND uf.active = 'y')
19-
WHERE s.source = '@%d' AND s.type IN ('catchall') and s.active = 'y' AND uu.mailuser_id IS NULL AND uf.forwarding_id IS NULL AND s.server_id = {server_id}
20-
UNION
21-
SELECT s.destination as target FROM mail_forwarding as s
22-
INNER JOIN mail_forwarding as t ON (t.source = s.destination AND t.type = 'catchall')
23-
WHERE s.source = '@%d' AND s.type = 'aliasdomain' and s.active = 'y' AND t.active = 'y' AND s.server_id = {server_id}
8+
SELECT s.destination AS target FROM mail_forwarding AS s
9+
WHERE s.source = '@%d' AND s.type = 'catchall' AND s.active = 'y' AND s.server_id = {server_id}
10+
AND NOT EXISTS (SELECT email FROM mail_user WHERE email = '%s' AND server_id = {server_id})
11+
AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND server_id = {server_id})

install/tpl/opensuse_postfix.conf.master

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
22
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
3-
virtual_alias_domains =
4-
virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
3+
virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf
4+
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf
55
virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf
66
virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf
77
virtual_mailbox_base = {vmail_mailbox_base}

0 commit comments

Comments
 (0)