[Web][Postfix][Dovecot] Mail policies: compare addresses like Postfix, close bypasses via alias forms, temporary aliases, Sieve and cross-domain groups

This commit is contained in:
FreddleSpl0it committed 2026-11-07 17:51:27 +01:00
1 parent 4484cfcd42
commit 46c9ec90b0
22 files changed
+614 -141

No files matched your search

+2 -1
View File
@@ -22,7 +22,8 @@ def check(request):
if nginx is None:
nginx = socket.gethostbyname('nginx')
# http.client sets TCP_NODELAY, so the body is not held back until the headers are acknowledged
conn = http.client.HTTPConnection(nginx, 8081, timeout=10)
# below the timeout of Postfix (main.cf), so an answer always arrives
conn = http.client.HTTPConnection(nginx, 8081, timeout=8)
try:
conn.request('POST', '/mailpolicy.php', body, {'Host': 'nginx', 'Content-Type': 'application/x-www-form-urlencoded'})
response = conn.getresponse()
+4 -5
View File
@@ -246,11 +246,10 @@ user = ${DBUSER}
password = ${DBPASS}
hosts = unix:/var/run/mysqld/mysqld.sock
dbname = ${DBNAME}
query = SELECT 'mailcow_mail_policy' FROM mail_policy_member
JOIN mail_policy ON mail_policy.id = mail_policy_member.policy_id
WHERE mail_policy.active = '1' AND '%s' != ''
UNION SELECT 'mailcow_mail_policy' FROM alias WHERE internal = '1' AND active = '1'
LIMIT 1;
query = SELECT 'mailcow_mail_policy' FROM DUAL WHERE '%s' != ''
AND (EXISTS (SELECT 1 FROM mail_policy_member JOIN mail_policy ON mail_policy.id = mail_policy_member.policy_id
WHERE mail_policy.active = '1')
OR EXISTS (SELECT 1 FROM alias WHERE internal = '1' AND active IN ('1', '2')));
EOF
cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_alias_domain_maps.cf