Postfix: Empfängeradresse abgelehnt: Benutzer unbekannt in lokaler Empfängertabelle

30

Wenn ich versuche, eine E-Mail auf meinem Postfix-Server an eine Adresse in derselben Domäne zu senden (wenn der Hostname des Servers beispielsweise mail.example.com lautet und ich versuche, eine E-Mail an [email protected] zu senden), erhalte ich die folgende Fehler wird in dem Protokoll und die E - Mail nicht zugestellt : Recipient address rejected: User unknown in local recipient table. Wenn ich an eine Adresse auf einer anderen Domain sende, habe ich keine Probleme. Hier ist meine /etc/postfix/main.cf Datei:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $mydomain, localhost.$mydomain, localhost
relayhost =
#fake IP address
mynetworks = 127.0.0.0/8 100.837.191.223
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
Tai Squared
quelle
Ich bin bereits darauf gestoßen, als auf Servern aus irgendeinem Grund nicht die richtigen Hostnamen festgelegt wurden. Ist Ihre Domain mail.example.comals MX-Eintrag eingerichtet? Ist dieser Server wirklich mail.example.com?
Bert

Antworten:

42

Ich weiß, dass diese Frage ein bisschen alt ist, also gehe ich davon aus, dass sie bereits zufriedenstellend beantwortet wurde.

Ich hatte gerade das gleiche Problem und es dauerte eine Weile, bis ich herausgefunden hatte, was los war. Ich denke, meine Situation war dieselbe wie die ursprüngliche Frage.

Postfix sollte alle E-Mails an andere Server im Internet weiterleiten, es empfängt tatsächlich keine E-Mails für Domänen. Daher sollten alle an example.com gesendeten E-Mails an den Mailserver für example.com weitergeleitet werden. Die Lösung, wie b techieb0y erklärt, besteht darin, $ mydomain aus der Zeile zu entfernen:

mydestination = $mydomain, localhost.$mydomain, localhost

Diese Zeile teilt postfix mit, dass alle an $ mydomain gesendeten Nachrichten empfangen und auf diesem Server gespeichert werden sollen. Ich möchte nicht, dass diese Nachrichten an den eigentlichen Mailserver von example.com gesendet werden. Nachdem ich dies erkannt und example.com entfernt hatte, funktionierte die E-Mail wie erwartet. Ich poste dies mit der Möglichkeit, dass diese Erklärung jemand anderem hilft, der in Zukunft über diese Frage stolpert.

chmac
quelle
18

Der Fehler ist ziemlich selbsterklärend: Der Benutzername der Ziel-E-Mail (links vom @ -Zeichen) kann weder einem lokalen Benutzer auf dem System (Standardeinstellungen für Postfix) noch einer virtuellen Domäne (da keine aus dem konfiguriert sind) zugeordnet werden Box). Die Entscheidung, diese Zuordnung durchzuführen, wird durch die Liste der Domänen in "MeinZiel" (zuzüglich aller virtuellen Domänen) gesteuert. Wenn es sich bei diesem Computer tatsächlich um den primären MX einer Domain handelt, haben Benutzer, die nicht vorhanden sind, eine fehlerhafte E-Mail-Nachricht. Wenn dieses Feld nur ausgehende Nachrichten senden muss, sollte es ausreichen, die Zieldomäne aus meinem Ziel zu entfernen (indem Sie $ mydomain aus der Liste entfernen). Es akzeptiert weiterhin Nachrichten direkt für [email protected], aber Nachrichten für user @ domain.tld durchläuft den MX-Suchvorgang für die Zustellung an einer anderen Stelle.

techieb0y
quelle
1
Sie meinen Tag gerettet, ich war verrückt zu werden ... warum ich habe zwei Benutzer für mich, tstaerk und thorsten;)
Thorsten Staerk
5

Wenn Sie eine Nachricht an Ihre lokale Domain senden, überprüft Postfix, ob der Empfänger vorhanden ist. Wenn Sie eine E-Mail an eine andere Domain senden, ist postfix nicht dafür verantwortlich.

Sie müssen entweder einen lokalen Benutzer namens test haben

useradd -s /bin/bash -d /home/test -U test

Oder Sie benötigen einen Alias ​​vom Test an einen lokalen Benutzer in / etc / aliases

echo "test: root" >> /etc/aliases
postalias /etc/aliases

Und du solltest bereit sein.

Julien Vehent
quelle
Gibt es eine Möglichkeit, diese Prüfung zu umgehen, damit ich nicht für jede Person, an die ich eine E-Mail senden würde, einen Benutzer erstellen muss? Ich möchte diesen Server nicht als primären Mailserver verwenden, sondern nur ausgehende E-Mails von einer Anwendung senden, wenn Fehler auftreten. Ich würde es vorziehen, den Server nicht jedes Mal aktualisieren zu müssen, wenn ich einen neuen Empfänger für die Anwendungs-E-Mail hinzufügen möchte.
Tai Squared
Angenommen, Sie möchten eine E-Mail an "[email protected]" senden. Sie müssen lediglich sicherstellen, dass Ihr lokales Postfix NICHT für "domainz.com" verantwortlich ist. Andernfalls wird versucht, den Benutzer lokal zu validieren. Setzen Sie also die Direktive 'mydomain' auf etwas anderes, wie 'mydomain = local.server', und postfix sendet Ihre E-Mail an den Server, der für 'domainz.com'
Julien Vehent,
1

Ich habe also ein ähnliches Problem und habe es noch nicht ganz herausgefunden, aber das sollte Sie in die richtige Richtung bringen:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html

Schauen Sie sich den Abschnitt "Postfix auf einem Null-Client" an - ich denke, das ist, was Sie wollen. Ich habe auch versucht, local_recipient_maps wie auf der Website von postfix angegeben einzustellen: LOCAL_RECIPIENT_README.html

Beide Links sollten das tun, wonach wir hier suchen, aber ich kann sie nicht zum Laufen bringen. Wenn ich das vollständige Null-Client-Setup durchführe, funktioniert der Versuch, eine Test-SMTP-E-Mail per Telnet zu senden, nicht. Ich erhalte die Meldung "telnet: Verbindung zu Adresse 97.74.92.30 herstellen: Verbindung abgelehnt". Beim Festlegen der lokalen Empfängerzuordnung wird bei der Suche im Befehl RCPT TO: keine Fehlermeldung wie zuvor angezeigt. Beim Senden der E-Mail (sieht normal aus) wird jedoch keine E-Mail gesendet, und im Mail-Protokoll ist ein Fehler aufgetreten:

"550-Mailbox unbekannt. Entweder ist keine Mailbox mit diesem 550-Namen verknüpft, oder Sie haben keine Berechtigung, ihn anzuzeigen. 550 5.1.1 Benutzer unbekannt"

Lass es mich wissen, wenn du mehr Glück hast.

Ich denke
quelle