[Postfixbuch-users] Mailrelay mit MySQL betreiben
Sandy Drobic
postfixbuch-users at japantest.homelinux.com
Fr Jan 19 13:43:56 CET 2007
Muenz, Michael wrote:
>>> Woran liegt das? Kapier ich einfach nicht ...
>> Bei so detaillierten Angaben kann ich nur noch meine Kristallkugel um
>> Meinung fragen, und die sagt:
>>
>> - Bitte Ausgabe von "postconf -n" posten
>> - Bitte Ausgabe von "postconf -m" posten
>> - Die Logzeilen, wo die Mail eingeht bis zur Auslieferung/Ablehnung
>
> Sorry, ich dachte die Loesung waere so trivial, da wollte ich nicht mit
> saemtlichen Details alle zumuellen. Also die Mail wird abgewiesen mit:
>
> "Recipient address rejected: User unknown in local recipient table;"
Okay, die gültigen Empfänger für domains in $mydestination sind in
$local_recipient_maps abgelegt.
> postconf -n:
>
> 2bounce_notice_recipient = postmaster
> access_map_reject_code = 554
> address_verify_default_transport = $default_transport
> address_verify_local_transport = $local_transport
> address_verify_map =
Äh, bist du GANZ sicher, dass dies die Ausgabe von "postconf -n" ist?!?
Sieht eher nach der Ausgabe von "postconf" aus.
> local_recipient_maps = proxy:unix:passwd.byname $alias_maps
Hier fehlt dann der Aufruf der Mysql-Abfrage, deshalb findet der Server
den User nicht.
> mydestination = $myhostname, localhost, mysql:/etc/postfix/mysql-domains.cf
Hier ist zumindest die Domain drin. Der Server weiss also, dass er
zuständig ist für die Domain, aber er findet den Benutzer nicht, da er nur
in passwd und /etc/aliases nachsieht, aber nicht in mysql.
> postconf -m:
> btree
> cidr
> environ
> hash
> mysql
> nis
> proxy
> regexp
> static
> unix
Okay, du hast also Unterstützung für MySQL.
> mailin-01:/etc/postfix# cat mysql-domains.cf
> user=postfix
> password=xxx
> dbname=postfix
> table=domain
> select_field=domain_name
> where_field=domain_name
> hosts=localhost
Dies funktioniert ja auch, nicht wahr?
>
> mailin-01:/etc/postfix# cat mysql-transport.cf
> user=postfix
> password=xxx
> dbname=postfix
> table=transport
> select_field=transport
> where_field=domain
> hosts=localhost
>
> Wie gesagt, wenn ich mysql-domains.cf in relay_domains lege gehts.
Weil der Default für $relay_recipient_maps leer ist (es findet keine
Überprüfung statt, ob der Benutzer existiert).
Dies ist aber absolut notwendig, da der Server sonst ALLE Mails für die
Domain annimmt, dann feststellt, er kann die Mail nicht zustellen, um sie
dann an die Absenderadresse wieder zurückzuschicken. Im Falle von Spam und
Viren ist dies gefälscht, du würdest also die Mail an einen unbeteiligten
Dritten schicken, der sich zu recht dann wütend bei dir meldet. (^-^)
Du brauchst eine dritte Abfrage, wo die gültigen Benutzer in MySQL
abgelegt sind, diese muss zusätzlich in local_recipient_maps herein (die
Abfrage muss nur auf den Benutzernamen gehen, ohne Domain, wenn die Domain
in Mydestination ist).
Sandy
--
Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
Mehr Informationen über die Mailingliste Postfixbuch-users