Das folgende ergibt keinen Sinn:
smtpd_helo_restrictions = check_helo_access regexp:/etc/postfix/allowed_sender_domains, reject
Damit würdest Du nach Deinen Domains im HELO-String der einliefernden Anfragen filtern. In Deiner Regex-Datei sind aber Domains mit @ voran eingetragen. D. h. die würden nie greifen, weil als HELO-Namen FQDN-Hostnamen geliefert werden. Also: Zeile weg!
Ansonsten funktioniert Dein Beispiel von smtpd_recipient_restrictions bei mir so wie Du Dir das wünscht:
heisenberg@dot:~$
openssl s_client -quiet -connect localhost:25 -starttls smtp
Can't use SSL_get_servername
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = dot.bla.de
verify return:1
250 CHUNKING
EHLO localhost
250-dot.bla.de
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
MAIL FROM:<heisenberg@erlaubt.de>
250 2.1.0 Ok
RCPT TO:<heisenberg@verboten.de>
554 5.7.1 <
heisenberg@verboten.de>: Recipient address rejected: Access denied
RCPT TO:<heisenberg@erlaubt.de>
250 2.1.5 Ok
^C
heisenberg@dot:~$
main.cf
Code: Alles auswählen
smtpd_relay_restrictions = check_recipient_access regexp:/etc/postfix/allowed_recipient_domains reject
allowed_recipient_domains
Poste doch nochmal die Ausgabe von
postconf, bzw. setze sie hier ins NoPaste. Bitte aber ggf. verschleiern, so dass keine sensiblen Daten veröffentlicht werden, die Datei aber strukturell erhalten bleibt, um Fehler erkennen zu können.
Ansonsten: Schon die Logs in /var/log/mail.log bzw. /var/log/mail.err beim starten von Postfix als auch beim versenden der Mails geprüft?