Amavis New mit Confixx

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-16 19:48

Hallo liebes News-Volk,

ich habe Confixx mit AmavisNew laufen. In der amavisd.conf steht folgender SQL drin:


$sql_select_policy = 'SELECT *,users.id FROM users,policy'.
' WHERE (users.policy_id=policy.id) AND (users.username IN (%k))'.
' ORDER BY users.priority DESC';

In der "Variable" %k steht folgendes drin:
web1p1@hxxxxxx.serverkompetenz.net

In der Amavis-DB steht aber als UserName in der user-Tabelle nur web1p1 drin. Wie kann ich das "%k" ändern? Ich möchte die Einträge in der user-Tabelle nicht ändern, weil viele andere Scripte auch darauf zugreifen?

Danke für jede IDee.

Gruß und grunz,

das kleine Ferkelchen.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Amavis New mit Confixx

Post by Roger Wilco » 2006-07-16 20:06

-> http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html
SUBSTRING_INDEX sollte dir weiterhelfen...

kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

AW: Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-17 08:51

Danke für die schnelle Antwort. Leider ist die Lösung nicht das, was ich brauche (mein Fehler: ich habe mich falsch ausgedrückt).

Ich kann die Variable %k nicht ändern. Das heißt, dass %k keine wirkliche Variable ist, sondern eher ein Platzhalter, der im AmavisNew-Perlscript verwendet wird.

Das AmavisNew-Perlscript scheint das %k intern selbst in einen komma-separierten String umzuwandeln, den ich natürlich vorher weder substringen noch sonst irgendwie verändern kann.

Wie man im Anfangs-Posting sieht, wird die komplette SQL-Anweisung in eine Variable geschrieben, die AmavisNewSQL benutzt.

Das Problem müssen eigentlich alle haben, die das Squirrelmail-Plugin "AmavisNewSQL" benutzen und Confixx als Verwaltungstool haben.

Gruß und grunz,

das kleine Ferkelchen

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Amavis New mit Confixx

Post by antondollmaier » 2006-07-17 09:05

Code: Select all

 $sql_select_policy = 'SELECT *,users.id, CONCAT( users.username, '@hxxxxxx.serverkompetenz.net') as useraccount FROM users,policy'.
' WHERE (users.policy_id=policy.id) AND (users.useraccount IN (%k))'.
' ORDER BY users.priority DESC';

HTH ;)

kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

AW: Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-17 09:27

Goil! Das sieht zumindest mal mächtig gut aus. Werde es heute abend mal testen und berichten. Ganz herzlichen Dank dafür.
Benutzt Du das in Deinem AmavisNewSQL so laufen oder ist das ein SQL, der Deiner Meinung nach so funktionieren müsste?

Gruß und grunz,

das kleine Ferkelchen

kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

AW: Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-17 09:57

Uuups - was ist denn das nun wieder?
Habe gerade mal versucht, die SQL-Anweiung einzubauen. Folgendes spuckte die Shell aus:
hxxxxxx:~ # Array found where operator expected at /etc/amavisd.conf line 798, at end of line
(Missing operator before ?)
Error in config file /etc/amavisd.conf: Bad name after net' at /etc/amavisd.conf line 798.
(Line 798: $sql_select_policy = 'SELECT *,users.id, CONCAT( users.username, '@xxxxxx.serverkompetenz.net') as useraccount FROM users,policy'.)

Nun habe ich das hxxxxxx.serverkompetenz.net mal in Anführungszeichen gesetzt (statt dem Hochkomma). Dann kommt im Mail-Log folgende Meldung:
TROUBLE in check_mail: creating_partsdir FAILED: DBD::mysql::st execute failed: Unknown column 'users.useraccount' in 'where clause' at (eval 56) line 217, <GEN8> line 21.
Any ideas?

Danke, Gruß und grunz,

das kleine Ferkelchen

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Amavis New mit Confixx

Post by antondollmaier » 2006-07-17 11:19

Code: Select all

 $sql_select_policy = 'SELECT *,users.id, CONCAT( users.username, "@hxxxxxx.serverkompetenz.net") as useraccount FROM users,policy'.
' WHERE (users.policy_id=policy.id) AND (useraccount IN (%k))'.
' ORDER BY users.priority DESC';
Probiers so mal ....


Und nein, ich hab zwar amavisd-new am laufen, aber nicht mit Squirrelmail (RoundCube/Horde) ... Confixx-Integrierung ist selbst geschrieben ...

kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

AW: Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-17 11:45

users.useraccount ohne "users" habe ich auch schon versucht. Leider ist das Ergebnis genau das selbe:
ROUBLE in check_mail: creating_partsdir FAILED: DBD::mysql::st execute failed: Unknown column 'useraccount' in 'where clause' at (eval 56) line 217, <GEN8> line 21.
Kann MySQL diese Verknüpfung nicht? Ich habe mit phpMyAdmin die SQL-Anweisung getestet => selbes (schlechtes) Ergebnis... .

Wie lösen denn all die anderen Freunde des AmavisNewSQL das Problem???

Nochmals Danke und Gruß (und grunz),

das kleine Ferkelchen

(P.S.: RoundCube ist seeeeehr geil!!! Hat leider noch zu wenig Features.)

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: Amavis New mit Confixx

Post by antondollmaier » 2006-07-17 12:02

[quote="antondollmaier"]

Code: Select all

 $sql_select_policy = 'SELECT *,users.id FROM users,policy'.
' WHERE (users.policy_id=policy.id) AND (CONCAT( users.username, "@hxxxxxx.serverkompetenz.net") IN (%k))'.
' ORDER BY users.priority DESC';

so? :-D


so isses zumindest bei mir im amavis ...

kleines_erdferkel
Posts: 8
Joined: 2006-07-16 19:43

AW: Amavis New mit Confixx

Post by kleines_erdferkel » 2006-07-17 12:47

Oh Du mein SQL-König. Ich verneige mich in tiefem Respekt vor Dir.
Alles funktioniert wunderbar. Hab' herzlichen Dank!

Fröhliches Gegrunze,

das kleine Ferkelchen