So sieht die Meldung aus
postfix/smtpd[2210]: NOQUEUE: reject: RCPT from client.example.net[203.0.113.20]: 554 5.7.1 <user@example.org>: Relay access denied; from=<me@example.com> to=<user@example.org> proto=ESMTP helo=<client>Häufige Ursachen
- Das Mailprogramm oder die App meldet sich nicht an oder nutzt Port 25, wo kein Login angeboten wird. Den Submission-Port 587 mit Login verwenden.
- In
smtpd_relay_restrictionsfehltpermit_sasl_authenticated, daher werden auch angemeldete Nutzer abgelehnt. - Die Empfängerdomain gehört dir, steht aber nicht in
virtual_mailbox_domains,mydestinationoderrelay_domains. - Der sendende Rechner ist ein vertrauter interner Host, seine Adresse steht aber nicht in
mynetworks. - Ein Tippfehler in der Empfängerdomain oder ein MX-Eintrag, der auf diesen Server zeigt, obwohl er die Domain nicht bedienen soll.
Prüfen
- Geltende Relay- und Empfängerregeln
postconf -n | grep -E 'smtpd_relay_restrictions|smtpd_recipient_restrictions|mynetworks' - Welche Domains nimmt dieser Server an?
postconf -n | grep -E 'mydestination|virtual_mailbox_domains|virtual_alias_domains|relay_domains' - Ist der Login am Submission-Dienst aktiv?
postconf -P submission/inet/smtpd_sasl_auth_enable - Die Ablehnungen im Log
Lösung
- Deine Nutzer über Port 587 mit STARTTLS und Login senden lassen, nicht über Port 25 ohne Login.
- Angemeldete Nutzer erlauben:
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destinationundsmtpd_sasl_auth_enable = yesam Submission-Dienst in dermaster.cfaktivieren. - Soll die Empfängerdomain hier zugestellt werden, in
virtual_mailbox_domains(odermydestination) eintragen, aber nur in eines von beiden, dannpostfix reload. - Für einen vertrauten internen Host nur dessen Adresse in
mynetworksaufnehmen. Niemals große Bereiche oder0.0.0.0/0. - Erneut eine Testmail senden und prüfen, dass die Logzeile weg ist.
Häufige Fragen
Heißt das, mein Server ist ein offenes Relay?
Nein, das Gegenteil. Die Meldung ist der Schutz bei der Arbeit. Du musst nur handeln, wenn deine eigenen Nutzer oder deine eigene Domain abgelehnt werden.
Warum passiert es nur bei manchen Empfängern?
Mail an deine eigenen Domains wird angenommen, Mail an andere Domains braucht eine Anmeldung. Lokale Empfänger gehen also durch, externe bekommen den Fehler, bis sich der Client anmeldet.