
Wenn ich versuche, eine E-Mail auf meinem Postfix-Server an eine Adresse in derselben Domäne zu senden (wenn der Server-Hostname beispielsweise mail.example.com ist und ich versuche, eine E-Mail an[email geschützt]), erhalte ich den folgenden Fehler im Protokoll und die E-Mail wird nicht zugestellt: Recipient address rejected: User unknown in local recipient table
. Wenn ich an eine Adresse in einer anderen Domäne sende, habe ich keine Probleme. Hier ist meine Datei /etc/postfix/main.cf:
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
Antwort1
Ich weiß, dass diese Frage schon etwas älter ist, daher gehe ich davon aus, dass sie bereits zufriedenstellend beantwortet wurde.
Ich hatte gerade dasselbe Problem und es hat eine Weile gedauert, bis ich herausgefunden habe, was los war. Ich glaube, meine Situation war die gleiche wie bei der ursprünglichen Frage.
Postfix sollte weiterleitenalleE-Mails an andere Server im Internet, es empfängt jedoch 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 besteht, wie von techieb0y erklärt, 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 gespeichert werden sollen aufDasServer. Das ist nicht, was ich will, ich will, dass diese Nachrichten an den eigentlichen Mailserver für example.com gesendet werden. Nachdem ich das erkannt und example.com entfernt hatte, funktionierte die E-Mail wie erwartet. Ich poste das hier in der Hoffnung, dass diese Erklärung jemandem hilft, der in Zukunft über diese Frage stolpert.
Antwort2
Der Fehler ist ziemlich selbsterklärend: Der Benutzername der Ziel-E-Mail (links vom @-Zeichen) kann weder einem lokalen Benutzer auf dem System (Standard-Postfix-Einstellungen) noch einer virtuellen Domäne zugeordnet werden (da keine standardmäßig konfiguriert ist). Die Entscheidung, diese Zuordnung zu versuchen und durchzuführen, wird durch die Liste der Domänen in „mydestination“ (plus alle virtuellen Domänen) gesteuert. Wenn diese Maschine tatsächlich der primäre MX einer Domäne ist, dann haben Benutzer, die nicht existieren, beschädigte E-Mails. Wenn diese Box nur ausgehende Nachrichten senden muss, sollte es ausreichen, einfach die Zieldomäne aus „mydestination“ zu entfernen (indem Sie $mydomain aus der Liste entfernen) – sie akzeptiert weiterhin Nachrichten direkt für[email geschützt], aber Nachrichten für[email geschützt]durchläuft den MX-Suchvorgang für die Zustellung an einen anderen Ort. Sie können den Vorgang abkürzen, indem Sie eine Transportkarte einrichten (für einzelne Domänen) oder einen Smarthost konfigurieren (für alle E-Mails).
Antwort3
Wenn Sie eine Nachricht an Ihre lokale Domäne senden, ist Postfix dafür verantwortlich, zu überprüfen, ob der Empfänger existiert. Wenn Sie eine E-Mail an eine andere Domäne senden, übernimmt Postfix diese Verantwortung nicht.
Sie benötigen entweder einen lokalen Benutzer namens test
useradd -s /bin/bash -d /home/test -U test
oder Sie benötigen einen Alias von test zu einem lokalen Benutzer in /etc/aliases
echo "test: root" >> /etc/aliases
postalias /etc/aliases
Und schon sollte alles fertig sein.
Antwort4
Fügen Sie der /etc/postfix/main.cf
Datei eine Zeile local_recipient_maps =
mit einem leeren Wert hinzu (standardmäßig ist der Wert aktiv und nicht leer, deshalb muss diese Zeile mit einem leeren Wert hinzugefügt werden).