zweite Instanz mit eigenem Transport

Ronny Seffner ronny at seffner.de
Do Mai 14 18:18:39 CEST 2020


Hallo Liste,

ich dachte mein Problem ist einfach zu Lösen.
Da ist ein funktionierender postfix, der die "lokalen"
Empfängerinformationen via virtual_ aus MySQL zieht. Zusätzlich holt ein
fetchmail noch ein paar fremde Postfächer ab und übergibt sie dem Postfix.
Nun kommt es hin und wieder vor, dass eine dieser mit fetchmail abzuholenden
Mails größer ist, als das gewollte message_size_limit des Postfix. Leider
kann nach meiner Kenntnis fetchmail damit nicht gut umgehen und versucht
diese Mails eben wieder und wieder erfolglos abzuholen.

Nun war meine Idee, in der master.cf einfach für einen weiteren smtpd zu
sorgen, der ein weniger strenges message_size_limit fährt. An diesen soll
fetchmail liefern. Nun soll diese zweite Instanz aber die Post der ersten
Instanz in die Hand drücken, bekommt das Limit zu spüren und erstellt dann
aber ein NDA an den ursprünglichen Absender (was fetchmail ja leider nicht
beherrscht). Mir ist klar, dass es technologisch sauberer wäre, diese
externen Postfächer würden schon entsprechend limitieren.

Was nun aber passiert, ist dass diese neue Instanz - egal wie ich es
konfiguriere - irgendwie den transport "dovecot" aus den virtual_*_maps der
main.cf "erbt" und nicht überschrieben bekommt. In der Dokumentation finde
ich auch keinen Hinweis, dass das nicht gehen soll.

postconf -n

compatibility_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd
$daemon_directory/$process_name $process_id & sleep 5
dovecot_destination_recipient_limit = 1
html_directory = no
inet_protocols = ipv4
local_transport = local
mailbox_size_limit = 0
mydomain = LOCALDOMAIN.TLD
mynetworks = 127.0.0.0/8, 192.168.2.0/24
mynetworks_style = subnet
relay_domains = $mydestination
relayhost = RELAY.DOMAIN2.TLD
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_security_options = noanonymous
smtp_tls_loglevel = 1
smtp_use_tls = yes
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unknown_client_hostname
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination, reject_unauth_pipelining,
reject_non_fqdn_recipient
smtpd_relay_restrictions =
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_login_maps =
mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
smtpd_sender_restrictions = check_recipient_access
hash:/etc/postfix/recipient_access, check_sender_access
hash:/etc/postfix/sender_access, permit_mynetworks,
reject_sender_login_mismatch, permit_sasl_authenticated,
reject_unknown_helo_hostname, reject_unknown_recipient_domain,
reject_unknown_sender_domain,
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /
virtual_mailbox_domains =
mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:2000


die oben genutzte transport map

DOMAIN.TLD        :[127.0.0.1]


und der entscheidende Teil in der master.cf

127.0.0.1:26 inet n      -       y       -       -       smtpd
  -o message_size_limit=102400000
  -o virtual_transport=
  -o virtual_mailbox_maps=
  -o virtual_mailbox_domains=
  -o virtual_alias_maps=
  -o relayhost=[127.0.0.1]


Immer wenn ich an 127.0.0.1 ein Mail für DOMAIN.TLD abgebe, geht die nicht
an den 127.0.0.1:25 und hat im Log "relay=dovecot".
Wie kann ich denn erzwingen, dass der smtpd an 127.0.0.1:26 alles versucht
an den smtpd an 127.0.0.1:25 zu geben oder alternativ zu bouncen?


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner




Mehr Informationen über die Mailingliste Postfixbuch-users