panchovilla
29.06.07, 23:20
Hallo und schönen Tag!
Nach endlosem Rumprobieren versuche ich mal wieder hier mein Glück.
Ich soll für meinen neuen Arbeitgeber einen Mailserver aufsetzen, der virtuelle Domains bietet, mit Postfix und Cyrus arbeitet und mysql Datenbanken benutzt.
Die sasl-authentifizierung mit auxprop sql läuft tadellos.
Die DB für die accounts steht und die Abfragen laufen, die mail wird zugestellt und landet in der cyrus-typischen Form im Verzeichnis /var/spool/cyrus.
Soweit so gut.
Nun zu meinem Problem:
Da es sich eigentlich ausschliesslich um virtuelle Domains handelt, kommen diese in der postfix/main.cf unter mydestinations nicht vor.
Damit also nicht das relayen für diese domains automatisch geblockt wird, findet via:
virtual_alias_maps =
mysql:/etc/postfix/mysql-user.cf,
mysql:/etc/postfix/mysql-alias.cf
virtual_alias_domains =
mysql:/etc/postfix/mysql-domain.cf
Datenbankabfrage ein Zuordnen der User der virtuellen Domains statt.
Die Zuordnung erfolgt via select Anweisungen, wie für die neueren Postfix-Versionen angegeben.
Beispiel [/etc/postfix/mysql-user.cf]
query = SELECT dest FROM virtual WHERE alias='%s' AND status='1'
Auch das klappt prima:
snip:
"SELECT dest FROM virtual WHERE alias='frank@spieltkeinerolle.com' AND status='1' "[aus dem mysql.log]
dest muß dann die cyrusverträgliche Form "frank.spieltkeinerolle.com" (ohne at) haben, damit sich cyrus zuständig fühlt und die Mail angenommen wird.
Das wiederum führt dann dazu, das der Befehl noch einmal aufgerufen wird und an frank.spieltkeinerolle.com dann noch einmal @$myhostname
(nach: myhostname = host.local.domain) angehängt wird.(Wohl weil eine qualified Mail addy erwartet wird)
Für den reinen Postfixtransport mit Cyrus spielt dieses Extraloop keine Rolle und die schrägen Header könnte man mit einer canonical wieder bereinigen.
Aber nun kommt amavis ins Spiel.
Ist amavis eingeschleift, bekommt es nur die 2. Variante zu sehen und schafft es so nicht, den Usern in der amavisdb die entsprechenden Policies zuzuordnen, weil es die normale Mailaddy erwartet. Spamfilter funktioniert, clamav funktioniert, aber nur mit globalen und nicht mit per user Einstellungen.
Kennt jemand das Problem und hat einen Hinweis?
Bei Anfrage liefere ich gerne auch relevante Teile der logs und confs.
Mir wäre sehr geholfen, da ich an diesem Punkt schon lange bastele und mein Chef mich auch schon schräg anschaut deswegen.
Nach endlosem Rumprobieren versuche ich mal wieder hier mein Glück.
Ich soll für meinen neuen Arbeitgeber einen Mailserver aufsetzen, der virtuelle Domains bietet, mit Postfix und Cyrus arbeitet und mysql Datenbanken benutzt.
Die sasl-authentifizierung mit auxprop sql läuft tadellos.
Die DB für die accounts steht und die Abfragen laufen, die mail wird zugestellt und landet in der cyrus-typischen Form im Verzeichnis /var/spool/cyrus.
Soweit so gut.
Nun zu meinem Problem:
Da es sich eigentlich ausschliesslich um virtuelle Domains handelt, kommen diese in der postfix/main.cf unter mydestinations nicht vor.
Damit also nicht das relayen für diese domains automatisch geblockt wird, findet via:
virtual_alias_maps =
mysql:/etc/postfix/mysql-user.cf,
mysql:/etc/postfix/mysql-alias.cf
virtual_alias_domains =
mysql:/etc/postfix/mysql-domain.cf
Datenbankabfrage ein Zuordnen der User der virtuellen Domains statt.
Die Zuordnung erfolgt via select Anweisungen, wie für die neueren Postfix-Versionen angegeben.
Beispiel [/etc/postfix/mysql-user.cf]
query = SELECT dest FROM virtual WHERE alias='%s' AND status='1'
Auch das klappt prima:
snip:
"SELECT dest FROM virtual WHERE alias='frank@spieltkeinerolle.com' AND status='1' "[aus dem mysql.log]
dest muß dann die cyrusverträgliche Form "frank.spieltkeinerolle.com" (ohne at) haben, damit sich cyrus zuständig fühlt und die Mail angenommen wird.
Das wiederum führt dann dazu, das der Befehl noch einmal aufgerufen wird und an frank.spieltkeinerolle.com dann noch einmal @$myhostname
(nach: myhostname = host.local.domain) angehängt wird.(Wohl weil eine qualified Mail addy erwartet wird)
Für den reinen Postfixtransport mit Cyrus spielt dieses Extraloop keine Rolle und die schrägen Header könnte man mit einer canonical wieder bereinigen.
Aber nun kommt amavis ins Spiel.
Ist amavis eingeschleift, bekommt es nur die 2. Variante zu sehen und schafft es so nicht, den Usern in der amavisdb die entsprechenden Policies zuzuordnen, weil es die normale Mailaddy erwartet. Spamfilter funktioniert, clamav funktioniert, aber nur mit globalen und nicht mit per user Einstellungen.
Kennt jemand das Problem und hat einen Hinweis?
Bei Anfrage liefere ich gerne auch relevante Teile der logs und confs.
Mir wäre sehr geholfen, da ich an diesem Punkt schon lange bastele und mein Chef mich auch schon schräg anschaut deswegen.