Sep 152009
 

Mhhhhhh….
Irgendwas stimmt hier nicht…
Ich habe dem Kunden extra ein Quota von 150MB gegeben und trotzdem wird im Webmailer 50MB angezeigt…

Und nun habe ich es endlich gefunden..
Ich habe mir mal genau die mail.info angesehen… Dort sieht man genau was Dovecot von den Quota-Queries zurück gibt.
Und siehe da… Der Query hat immer meine Quota ausgelesen, anstatt die vom Kunden…

Das Problem liegt in diesem Query
[php]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‘);[/php]

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.

Richtig müssen die Queries wie folgt aussehen:

dovecot-sql-domain.conf:
[php]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=’%u‘ and (mail_type=’normal_mail‘ OR mail_type=’normal_mail,normal_forward‘);[/php]

dovecot-sql-subdomain.conf:
[php]user_query = SELECT concat(‚/var/mail/virtual/‘, subdomain.subdomain_name, ".", domain.domain_name, ‚/‘,mail_acc) as home, ‚1000‘ as uid, ‚8‘ as gid, concat(‚*:bytes=‘, quota) AS quota_rule FROM (mail_users INNER JOIN subdomain ON mail_users.sub_id = subdomain.subdomain_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_addr=’%u‘ and concat(subdomain.subdomain_name,".",domain.domain_name)=’%d‘;[/php]

dovecot-sql-aliasdomain.conf:
[php]user_query = SELECT concat(‚/var/mail/virtual/‘, domain_aliasses.alias_name, ‚/‘,mail_acc) as home, ‚1000‘ as uid, ‚8‘ as gid, concat(‚*:bytes=‘, quota) AS quota_rule FROM (mail_users INNER JOIN domain_aliasses ON mail_users.sub_id = domain_aliasses.alias_id) INNER JOIN domain ON mail_users.domain_id = domain.domain_id WHERE mail_addr=’%u‘ and domain_aliasses.alias_name =’%d‘;[/php]

 

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)

 

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen