Hi zusammen,
mir ist gerade etwas aufgefallen, was natürlich im Betrieb falsche Angaben ausgibt...
Laut Wiki wird folgendes Query genutzt um das Quota aus der Datenbank zu lesen
Code:
user_query = SELECT concat('/var/mail/virtual/', domain.domain_name, '/',mail_addr) as home, '1000' as uid, '8' as gid, concat('*:bytes=', quota) AS quota_rule FROM mail_users inner join domain on mail_users.domain_id = domain.domain_id WHERE mail_acc='%n' and (mail_type='normal_mail' OR mail_type='normal_mail,normal_forward');
Wenn man 5 verschiedene Mailadressen mit z.b "info@..." besitzt, bekommt man auch 5 Zeilen mit diesem Query zurückgegeben.
Und dadurch werden einer Mailbox das falsche Quota ausgegeben.
Ich bin darauf gekommen, weil ich genau dieses Problem hatte...
Wenn man in phpMyAdmin diesen Query von Hand ausführt sieht man das Ergebnis:
Code:
SELECT concat('/var/mail/virtual/', domain.domain_name, '/',mail_addr) as home, '1000' as uid, '8' as gid, concat('*:bytes=', quota) AS quota_rule FROM mail_users inner join domain on mail_users.domain_id = domain.domain_id WHERE mail_acc='info' and (mail_type='normal_mail' OR mail_type='normal_mail,normal_forward');
Nun weiss ich aber nicht was dieses "%n" bedeuted.
Der richtige Query müsste lauten
Code:
user_query = SELECT concat('/var/mail/virtual/', domain.domain_name, '/',mail_acc) as home, '1000' as uid, '8' as gid, concat('*:bytes=', quota) AS quota_rule FROM mail_users inner join domain on mail_users.domain_id = domain.domain_id WHERE mail_addr='########' and (mail_type='normal_mail' OR mail_type='normal_mail,normal_forward');
Für die #-Zeichen müsste die komplette Emailadresse drin stehen...
Jetzt weiss ich aber nicht welche Variable das ist. %n gibt nur den Mailacc an.
Könnte das mal einer bei sich überprüfen?
Und evtl. auch mitteilen was anstatt %n da rein muss?
Gruß
Sascha
Edit:
Jetzt habe ich es gefunden... Für die #_zeichen muss dann später %u rein