Ich versuche, eine E-Mail an eine Adresse in meinem eigenen Postfach zu senden ([email geschützt]) und Postfix versucht, zu liefern an[email geschützt]- der Benutzername wird durch die Zahl 1 ersetzt. Diese Nachricht ist in der Antwort des Mailer-Daemons enthalten:
<[email protected]> (expanded from <[email protected]>): host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command)
Bei der Suche im Mail-Log wird das erste Ergebnis angezeigt, das sich auf[email geschützt]ist das:
Oct 19 13:41:44 servername postfix/lmtp[16232]: A547EC29C2: to=<[email protected]>, orig_to=<[email protected]>, relay=mail.domain.tld[private/dovecot-lmtp], delay=0.19, delays=0.16/0.01/0.01/0.02, dsn=5.1.1, status=bounced (host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))
[email geschützt]existiert und kann E-Mails nach außen versenden. [email geschützt]existiert offensichtlich nicht.
Warum also liefert Postfix wiederholt alle E-Mails an[email geschützt]?
Antwort1
Beim Ausführen doveconf -n
der Überprüfung wurde die folgende Zeile angezeigt:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
Bei der Überprüfung /etc/postfix/mysql-virtual-email2email.cf
kam der eigentliche Fehler ans Licht:
query = SELECT 1 FROM virtual_users WHERE email='%s'
Nach sorgfältiger Suche in der Datenbank wird für jeden Benutzer, dessen E-Mail-Adresse die angegebene Adresse ist, die Nummer 1 ausgewählt. Um dies zu beheben, ändern Sie 1
die Abfrage in den tatsächlichen richtigen Spaltennamen, den Ihre Tabelle verwendet.