From 4b3af3fad3d385b731bd51d4b7928483d9450eac Mon Sep 17 00:00:00 2001 From: Andriy Oblivantsev Date: Wed, 16 Sep 2026 14:51:36 +0100 Subject: [PATCH] fix(mail): only $mydomain is a local virtual mailbox domain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gmail.com and the other historical/incubator domains (gmx.de, gridfactor.de, rpf.de, viscreation.de, wheregroup.com) were in /etc/postfix/vhost, so mail to those addresses short-circuited into the local incubator archive via dovecot lmtp and never left the host — e.g. a campaign test from info@produktor.io to eslider@gmail.com. DMS appends postfix-main.cf last, so this override wins. Dovecot accounts stay for IMAP/doveadm import; only local delivery changes. Verified: v19 EML relayed to gmail-smtp-in.l.google.com, status=sent, dkim=pass. --- config/postfix-main.cf | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 config/postfix-main.cf diff --git a/config/postfix-main.cf b/config/postfix-main.cf new file mode 100644 index 0000000..33545e2 --- /dev/null +++ b/config/postfix-main.cf @@ -0,0 +1,24 @@ +# Postfix rate-limits + postscreen tarpit (E2 D3, soft mode, no DNSBL). +# NOTE: smtpd_client_error_rate_limit / smtpd_slow_connection_rate_limit do not +# exist in Postfix; mapped to the real anvil params smtpd_client_recipient_rate_limit +# and smtpd_client_auth_rate_limit (same values). +smtpd_client_connection_rate_limit = 10 +smtpd_client_message_rate_limit = 20 +smtpd_client_recipient_rate_limit = 10 +smtpd_client_auth_rate_limit = 5 +smtpd_hard_error_limit = 20 +smtpd_soft_error_limit = 10 +smtpd_error_sleep_time = 1s +smtpd_junk_command_limit = 2 +postscreen_greet_action = enforce +postscreen_bare_newline_enable = yes + +# Only $mydomain (produktor.io) is a LOCAL virtual mailbox domain (inbound). +# Historical / incubator addresses (gmail.com, gmx.de, gridfactor.de, rpf.de, +# viscreation.de, wheregroup.com) keep their Dovecot accounts for IMAP + +# doveadm import, but must NOT be local delivery domains: otherwise outbound +# mail to those domains short-circuits into the incubator archive (dovecot +# lmtp "Saved") and never leaves the host — e.g. a campaign test from +# info@produktor.io to eslider@gmail.com. Overridden last (DMS appends +# postfix-main.cf after its own setup). See mailing skill, Gitea #115. +virtual_mailbox_domains = $mydomain