PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix: User unknown in virtual alias table



Sam Fisher
29.07.08, 08:40
Hallo Linux Freunde !
Ich habe ein kleines Problem mit meinem Postfix und hoffe auf eure Hilfe.
Es geht um folgendes: Das Versenden funktioniert super, die Authentifizierung über SASL geht auch wunderbar. Jedoch bereitet das Empfangen von E-Mails mir leichte Probleme. Immer wenn ich an eine E-Mail-Adresse etwas schicke (BSP von GMX) bekomme ich sofort einen Bounce mit der Meldung:

User unknown in virtual alias table

Im Log-File steht folgendes drin:


postfix/smtpd[21706]: BF4E826B0120: client=242-242-xdsl-klg.linea7.net[195.16.242.242]
postfix/cleanup[21710]: BF4E826B0120: message-id=<488EC62F.9030504@e-c-o.at>
postfix/smtpd[21706]: disconnect from 242-242-xdsl-klg.linea7.net[195.16.242.242]
postfix/qmgr[21703]: BF4E826B0120: from=<unglaub@e-c-o.at>, size=1084, nrcpt=1 (queue active)
postfix/error[21711]: BF4E826B0120: to=<samfisher@cpbmail.de>, relay=none, delay=0.17, delays=0.14/0.01/0/0.02, dsn=5.0.0, status=bounced (User unknown in virtual alias table)
postfix/cleanup[21710]: E048F26B0127: message-id=<20080729072653.E048F26B0127@crystal-glass.leo-unglaub.net>
postfix/qmgr[21703]: E048F26B0127: from=<>, size=3058, nrcpt=1 (queue active)


Ein postconf -n gibt folgendes aus:


crystal-glass:/etc/postfix# postconf -n
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailbox_transport = cyrus
mydestination = crystal-glass, localhost.localdomain, localhost
mydomain = leo-unglaub.net
myhostname = crystal-glass.leo-unglaub.net
mynetworks = 127.0.0.0/8 85.10.201.0/27
mynetworks_style = subnet
smtp_sasl_auth_enable = no
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_hostname
smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
strict_rfc821_envelopes = yes
virtual_alias_domains = hash:/etc/postfix/config/virtual
virtual_alias_maps = hash:/etc/postfix/config/virtual_alias

In der virtual_alias_domains steht folgendes drin:

domain1.net foobar
domain2.net foobar


Und nun noch die Datei in der ich glaube das der Fehler drin stecken muss, aber leider kann ich ihn nicht sehen: Die virtual_alias_maps


@domain1.net @domain1.net


Wenn ich das Buch von Peer Heinlein richtig verstehe wird in dieser Datei gesagt, dass alle E-Mails für die Domain domain1.net angenommen und an diese Domain weiter geschickt werden sollen.

Wie sieht diese Datei bei euch aus? Oder brauche ich das Überhaupt? Denn eigentlich soll ja Cyrus die Mails in die Postfächer legen und nicht Postfix, Postfix ist doch "nur" MTA, der nimmt sie vom Fremden MTA und gibt Sie an Cyrus weiter, warum interessieren den die Adressen im einzelnen überhaupt?

Was mache ich da falsch?

Vielen Dank im Vorraus für eure antworten.
Viele Grüße
Sam

PS: ich habe alle postmap-Befehle ausgefürt und alle reloads ausgeführt
PPS: Mein System:
DEBIAN ETCH
Postfix
Cyrus

(jeweils die aktuelle stable Version)

Lösung im letzten Beitrag

Roger Wilco
29.07.08, 10:08
http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Sam Fisher
29.07.08, 10:18
Hallo !
Erst einmal recht herzlichen Dank für deine Antwort. Ja, das habe ich auch schon gelesen. Ich habe mich an folgenden Punkt gehalten: Postfix virtual MAILBOX example: separate domains, non-UNIX accounts

Dort wird folgender Code angegeben:

17 /etc/postfix/virtual:
18 postmaster@example.com postmaster

Das habe ich probiert. Hier ist mein Code:


samfisher@cpbmail.de samfisher@cpbmail.de
Vorne die E-Mail-Adresse und an der zweiten Stelle der Name so wie er in der SASLDB drin steht.

Oder wie ist die Anleitung sonst zu verstehen?

Im Log-Fiel steht in diesem Fall folgendes:

to=<samfisher@cpbmail.de>, relay=none, delay=0.13, delays=0.1/0.01/0/0.02, dsn=5.0.0, status=bounced (User unknown in virtual alias table)

Ich glaube ich habe irgend wo einen Denkfehler drin...

Vielen Dank
Sam

Roger Wilco
29.07.08, 10:23
Ich habe mich an folgenden Punkt gehalten: Postfix virtual MAILBOX example: separate domains, non-UNIX accounts
Warum? Benutze einfach den von mir verlinkten Abschnitt ("Postfix virtual ALIAS example: separate domains, UNIX system accounts"). Der trifft bei deinem Setup einigermaßen zu.


Das habe ich probiert. Hier ist mein Code:


samfisher@cpbmail.de samfisher@cpbmail.de
Vorne die E-Mail-Adresse und an der zweiten Stelle der Name so wie er in der SASLDB drin steht.
Nein, im zweiten Feld steht der (Cyrus-) Benutzer, der die E-Mails, die an die Adresse im ersten Feld adressiert wurden, erhalten soll.

Sam Fisher
29.07.08, 10:35
Hallo !

UNIX system accounts
Das UNIX Accounts hatte mich etwas verwirrt. Ich hatte die Einträge aus der SASLDB2 nicht dort dazu gezählt. Aber okay.

Es bleibt ja eigentlich das gleiche. Damit ich es verstehe, der zweite User ist der Name der Mailbox im Cyrus. Aber das ist bei mir der gleiche. Wenn ich im Cyradm ein lm mache wird mir dort dieser Username angezeigt:

crystal-glass:/var/run/cyrus/socket# cyradm -u cyrus localhost
IMAP Password:
localhost> lm
user.samfisher@cpbmail.de (\HasNoChildren)


Ich habe es auch schon mit der user.samfisher@cpbmail.de schreibweise versucht, es hat trotzdem nicht funktioniert. Das Resultat bleibt das gleiche.Ein Bounce-Mail mit


The mail system

<samfisher@cpbmail.de>: User unknown in virtual alias table
Irgend wie komisch, oder?

Vielen Dank für deine Hilfe
Viele Grüße
Sam

PS: Ich habe es auch schon mit mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp anstatt mailbox_transport = cyrus probiert, keine änderung.

Roger Wilco
29.07.08, 10:45
Ah, ok. Kleiner Denkfehler meinerseits.

Dann ist http://www.postfix.org/VIRTUAL_README.html#in_virtual_other der für dich relevante Abschnitt. Den Teil mit den virtual_alias_maps könntest du dabei prinzipiell auch weglassen.

Sam Fisher
29.07.08, 11:18
Hallo !
Wenn ich den weglassen könnte wäre super, aber wenn ich das einfach auskommentiere bekomme ich natürlich eine Fehlermeldung. Zwar eine andere, aber trotzdem eine Fehlermeldung:


<samfisher@cpbmail.de>: host mail.cpbmail.de[85.10.201.12] said: 550 5.1.1
<samfisher@cpbmail.de>: Recipient address rejected: User unknown in virtual
alias table (in reply to RCPT TO command)

Ich verstehe das aber nicht. Warum will Postfix das überhaupt wissen. Laut Peer Heinlein's Postfix-Buch ist diese Tabelle für Weiterleitungen und Umlöeitungen, aber ich will das doch alles nicht. Ich möchte, dass der User samfisher@cpmail.de genau die E-Mails samfisher@cpbmail.de bekommt. Ohne irgend welche Umleitungen und so weiter...

Hier ist noch mal meien aktuelle Konfiguration

alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
mydestination = crystal-glass, localhost.localdomain, localhost
mydomain = leo-unglaub.net
myhostname = crystal-glass.leo-unglaub.net
mynetworks = 127.0.0.0/8 85.10.201.0/27
mynetworks_style = subnet
smtp_sasl_auth_enable = no
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_hostname
smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
strict_rfc821_envelopes = yes
virtual_alias_domains = hash:/etc/postfix/config/virtual
virtual_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
Viele Grüße
Sam

Roger Wilco
29.07.08, 11:22
Bitte lies den Abschnitt http://www.postfix.org/VIRTUAL_README.html#in_virtual_other nochmal genau. Dir fehlt die Hälfte der Einstellungen in der main.cf...

Sam Fisher
29.07.08, 19:27
Hallo !
Vielen Dank für die Hilfe. Ich habe es geschaft, das E-Mail wird nun angenommen. (Vielen Dank auch an VIMES an dieser Stelle)

Vielen Herzlichen Dank für die Super hilfe, ich hoffe ich kann das irgend wann zurückgeben.

Viele Grüße an alle die mitgelesen haben
Sam


Fehlerursache-Lösung:
virtual_alias_domains ist in diesem Fall der vollkommen falsche Parameter. Richtig ist der so ähnlich klingende Parameter virtual mailbox domains.

Meine main.cf sieht nun so aus:

virtual_mailbox_domains = domain1.net, domain2.com
virtual_mailbox_maps = hash:/etc/postfix/config/virtual_mailbox


Die virtual_mailbox sieht so aus:

@domain1.net foobar
@domain2.com foobar

Erklärung: Der Parameter virtual_mailbox_domains sagt Postfix, dass für diese Domains mails angenommen werden sollen. Leider habe ich keien anderen Weg gefunden als die Adresse direkt in die main.cf zu schreiben. Laut dem Manual muss das so sein.
In der virtual_mailbox_maps definiert man dann welche E-Mails angenommen werden sollen: das @domain1.net sagt, dass alle E-Mails für diese Domain angenommen werdne sollen. Mann kann aber auch jede Adresse händisch eintragen.

Ich hoffe die Lösung nützt irgend jemandem etwas, der das hier über eine Suchmaschine findet.