Re: kein Versand von Mails möglich

Nico Funke nfunke at blocxx.org
Mo Apr 6 08:47:28 CEST 2026


    Hi p at rick,

>     Was hat nicht funktioniert? Das Login-SASL-Mapping und die damit verbundenen
>     Permissions / Filter?

    Nach dem ich die relay_recipient_maps hinterlegt hatte,
    funktionierte es zuerst nicht. Es dauerte ein paar Minuten und
    einige Neustarts.
    Das hat mich verwundert.

>     Vermischt Du möglicherweise gerade Mailbox (relay_recipient_maps) mit Domain
>     (relay_domains)?
>
>     Beides sind - auch wenn sie als Maps notiert werden (müssen) und sie deshalb
>     zweispaltig sind - aus Sicht von Postfix "nur" Listen deren linke Spalte (key)
>     der smtpd absucht um festzustellen
>
>     - ob es für die Domain zuständig ist und ob es diese als relay Domain
>        behandeln soll (-> relay_domains)
>     - ob der vom Client genannten envelope recipient auf der Liste für Relay
>        Empfänger steht und ob es diesen recipient als Relay Empfänger behandeln
>        soll (-> relay_recipient_maps)
>
>     Warum schreibe ich das?
>
>     Du schreibst "ich muss jede Relay Mailbox in die relay_recipient_maps
>     eintragen?". Nein, das musst Du nicht, denn diese map ausschließlich (!) für
>     relay_recipient_maps genutzt wird, dann wird Postfix im Kontext von
>     relay_recipient_maps nie die rechte Spalte (value) lesen und auswerten.
>
>     Aber… wenn Du die relay_recipient_maps oder relay_domains Map zusätzlich (!)
>     auch als transport map nutzen möchtest, dann kannst Du in die rechte Spalte
>     die Transportziele - oben nennst Du z. B. lmtp:unix:private/dovecot-lmtp -
>     schreiben. Postfix liest dann im Kontext von relay_recipient_maps oder
>     relay_domains nur die linke Spalte, aber im Kontext von transport_maps beide
>     Spalten. Das ist praktisch, weil Du dieselbe Map mehrfach verwenden kannst und
>     vieleicht ist es dieses Szenario, welches Du oben beschrieben hast.

    Jetzt hast du mich verwirrt, dass ist jedoch nicht schlecht, da es
    vermutlich mein Denkfehler zu Tage bringt.
    Im folgenden ist die aktuelle Testkonfiguration welche Funktioniert.
    Ohne die relay_recipient_maps bekomme ich den Eingangs genannten Error:


    relay_domains:
    domain.tld    lmtp:unix:private/dovecot-lmtp

    transport:
    ~ leer ~

    virtual:
    virtuelle-mailbox at domain.tld existierende-mailbox at domain.tld

    relay_recipient_maps:
    mailbox at domain.tld    OK

    postconf -n:
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    biff = no
    broken_sasl_auth_clients = yes
    compatibility_level = 3.9
    debug_peer_level = 2
    disable_vrfy_command = yes
    inet_interfaces = all
    inet_protocols = ipv4
    local_recipient_maps = $virtual_mailbox_maps
    local_transport = virtual
    mailbox_command =
    mailbox_size_limit = 0
    message_size_limit = 30240000
    mydestination = $myhostname, blocxx.org, xhc01.blocxx.org,
    localhost.blocxx.org, localhost
    myhostname = xhc01.blocxx.org
    mynetworks = 127.0.0.0/8
    mynetworks_style = host
    myorigin = /etc/mailname
    recipient_delimiter = +
    relay_domains = hash:/etc/postfix/relay_domains
    relay_recipient_maps = hash:/etc/postfix/relay_recipient_maps
    relayhost =
    smtp_helo_name = mail.blocxx.org
    smtp_tls_CAfile = /etc/ssl/blocxx/intermediate.crt
    smtp_tls_CApath = /etc/ssl/certs
    smtp_tls_cert_file = /etc/ssl/blocxx/certificate.crt
    smtp_tls_ciphers = high
    smtp_tls_key_file = /etc/ssl/blocxx/blocxx.key
    smtp_tls_loglevel = 1
    smtp_tls_mandatory_ciphers = high
    smtp_tls_mandatory_protocols = >=TLSv1.2
    smtp_tls_protocols = >=TLSv1.2
    smtp_tls_security_level = encrypt
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtpd_banner = $myhostname ESMTP $mail_name (Debian)
    smtpd_recipient_restrictions = check_recipient_access
    hash:/etc/postfix/check_recipient_access_rfc,
    permit_sasl_authenticated, permit_mynetworks,
    reject_unverified_recipient, permit
    smtpd_relay_restrictions = permit_mynetworks,
    permit_sasl_authenticated, defer_unauth_destination
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_path = private/auth
    smtpd_sasl_security_options = noanonymous, noplaintext
    smtpd_sasl_tls_security_options = noanonymous
    smtpd_sasl_type = dovecot
    smtpd_tls_CAfile = /etc/ssl/blocxx/intermediate.crt
    smtpd_tls_CApath = /etc/ssl/certs
    smtpd_tls_auth_only = yes
    smtpd_tls_cert_file = /etc/ssl/blocxx/certificate.crt
    smtpd_tls_ciphers = high
    smtpd_tls_key_file = /etc/ssl/blocxx/blocxx.key
    smtpd_tls_mandatory_ciphers = high
    smtpd_tls_mandatory_protocols = >=TLSv1.2
    smtpd_tls_protocols = >=TLSv1.2
    smtpd_tls_received_header = yes
    smtpd_tls_security_level = may
    tls_high_cipherlist = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    tls_preempt_cipherlist = yes
    transport_maps = hash:/etc/postfix/transport, $relay_domains
    virtual_alias_maps = hash:/etc/postfix/virtual
    virtual_transport = lmtp:unix:private/dovecot-lmtp


    postconf -Mf:
    smtp       inet  n       -       y       -       -       smtpd
    submission inet  n       -       n       -       -       smtpd
         -o smtpd_tls_security_level=encrypt
         -o smtpd_sasl_auth_enable=yes
         -o smtpd_sasl_type=dovecot
         -o smtpd_sasl_path=private/auth
         -o smtpd_sasl_security_options=noanonymous
         -o smtpd_sasl_local_domain=$myhostname
         -o smtpd_client_restrictions=permit_sasl_authenticated,reject
         -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
         -o smtpd_sender_restrictions=reject_sender_login_mismatch
         -o
    smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
    pickup     unix  n       -       y       60      1       pickup
    cleanup    unix  n       -       y       -       0       cleanup
    qmgr       unix  n       -       n       300     1       qmgr
    tlsmgr     unix  -       -       y       1000?   1       tlsmgr
    rewrite    unix  -       -       y       -       -  trivial-rewrite
    bounce     unix  -       -       y       -       0       bounce
    defer      unix  -       -       y       -       0       bounce
    trace      unix  -       -       y       -       0       bounce
    verify     unix  -       -       y       -       1       verify
    flush      unix  n       -       y       1000?   0       flush
    proxymap   unix  -       -       n       -       -  proxymap
    proxywrite unix  -       -       n       -       1  proxymap
    smtp       unix  -       -       y       -       -       smtp
    relay      unix  -       -       y       -       -       smtp
         -o
    syslog_name=${multi_instance_name?{$multi_instance_name}:{postfix}}/$service_name
    showq      unix  n       -       y       -       -       showq
    error      unix  -       -       y       -       -       error
    retry      unix  -       -       y       -       -       error
    discard    unix  -       -       y       -       -       discard
    local      unix  -       n       n       -       -       local
    virtual    unix  -       n       n       -       -       virtual
    lmtp       unix  -       -       y       -       -       lmtp
    anvil      unix  -       -       y       -       1       anvil
    scache     unix  -       -       y       -       1       scache
    postlog    unix-dgram n  -       n       -       1  postlogd



    Best,

---------------
blocxx
Nico Funke
Dolgenseestr. 41
10319 Berlin


Am 02.04.26 um 16:26 schrieb Patrick Ben Koetter via Postfixbuch-users:
> Hi!
>
> * Nico Funke via Postfixbuch-users<postfixbuch-users at listen.jpberlin.de>:
>> Ich habe bitte jedoch noch drei kleine Verständnisfragen:
>>
>> Nach dem ich die Map in der main.cf hinterlegt habe, hat es über eine
>> längere Zeit - mehrere Minuten - und auch über Neustarts von Postfix /
>> Dovecot nicht funktioniert. Worin liegt da die Erklärung? Musste ein Cache
>> erst resettet werden?
> Was hat nicht funktioniert? Das Login-SASL-Mapping und die damit verbundenen
> Permissions / Filter?
>
> Dovecot hat da keine Aktien drin, wenn Du SMTP machst. Bleibt Postfix.
> Die Postfix daemon - allen voran der smtpd - prüfen ob sich Maps verändert
> haben und lesen diese ggf. selbst neu ein. Das geschieht in kurzen
> Intervallen, weshalb es sich oft gar nicht lohnt ein reload oder stop / start
> abzusetzen. Einen Cache dafür gibt es nicht. Es muss folglich auch keiner
> ersetzt werden.
>
> Kann ich den Effekt anders erklären? Nein, spontan fällt mir keine Erklärung
> ein.
>
>
>> in meiner relay_domains befindet sich der Eintrag "domain.tld
>> lmtp:unix:private/dovecot-lmtp" und in meiner Theorie ging ich davon aus,
>> dass nach der Auswertung dieser Map per verify noch die Mailbox verifiziert
>> wird und dann ist es ok. Das ist dann wohl Quatsch und ich muss jede Relay
>> Mailbox in die relay_recipient_maps eintragen?
> Vermischt Du möglicherweise gerade Mailbox (relay_recipient_maps) mit Domain
> (relay_domains)?
>
> Beides sind - auch wenn sie als Maps notiert werden (müssen) und sie deshalb
> zweispaltig sind - aus Sicht von Postfix "nur" Listen deren linke Spalte (key)
> der smtpd absucht um festzustellen
>
> - ob es für die Domain zuständig ist und ob es diese als relay Domain
>    behandeln soll (-> relay_domains)
> - ob der vom Client genannten envelope recipient auf der Liste für Relay
>    Empfänger steht und ob es diesen recipient als Relay Empfänger behandeln
>    soll (-> relay_recipient_maps)
>
> Warum schreibe ich das?
>
> Du schreibst "ich muss jede Relay Mailbox in die relay_recipient_maps
> eintragen?". Nein, das musst Du nicht, denn diese map ausschließlich (!) für
> relay_recipient_maps genutzt wird, dann wird Postfix im Kontext von
> relay_recipient_maps nie die rechte Spalte (value) lesen und auswerten.
>
> Aber… wenn Du die relay_recipient_maps oder relay_domains Map zusätzlich (!)
> auch als transport map nutzen möchtest, dann kannst Du in die rechte Spalte
> die Transportziele - oben nennst Du z. B. lmtp:unix:private/dovecot-lmtp -
> schreiben. Postfix liest dann im Kontext von relay_recipient_maps oder
> relay_domains nur die linke Spalte, aber im Kontext von transport_maps beide
> Spalten. Das ist praktisch, weil Du dieselbe Map mehrfach verwenden kannst und
> vieleicht ist es dieses Szenario, welches Du oben beschrieben hast.
>
>
>> Meine master und main ist jetzt noch genau so wie gepostet mit dem neuen
>> Eintrag der relay_recipient_maps erweitert. Damit habe ich mir jetzt aber
>> nicht irgendwelche Löscher aufgemacht?
> Ich habe die letzte Version nicht gesehen. Magst beide noch einmal senden?
> Eine Ausgabe der master.cf, ähnlich wie jene der main.cf, erhältst Du übrigens
> mit "postconf -Mf". Und falls es nur submission sein soll, dann mit "postconf
> -Mf submission".
>
>
>> Ich danke nochmals allen sehr, dass ihr mit geschaut habt.
> Gerne
>
> p at rick
>
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listi.jpberlin.de/pipermail/postfixbuch-users/attachments/20260406/0579b393/attachment.htm>


Mehr Informationen über die Mailingliste Postfixbuch-users