Simply mysql quota check

Steffen Kaiser skdovecot at smail.inf.fh-brs.de
Thu Oct 2 06:33:13 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wed, 1 Oct 2014, Alfredo Saldanha wrote:

> #/etc/dovecot/dovecot-sql.conf.ext
> password_query = \
>  SELECT username AS user, value AS password \
>  FROM mailboxes WHERE username = '%n@%d'
>
> user_query = \
>  SELECT username, domain, \
>  CONCAT('*:storage=', SUBSTRING_INDEX(quota, 'm', 1)*1048576) AS userdb_quota_rule \
>  FROM mailboxes, domains WHERE mailboxes.username = '%n@%d' \
>  AND domains.domain = '%d'
>
> My idea is when a message is delivered, the dovecot to check quota in the mysql according to the value received in the "user_query" but he does not.
> It shows a value of 2GB that I don't know where it gets.
>
> I execute a manual query in mysql to know the quota my test user and checked that are 5GB, but when I see the dovecot, it shows 2G.
>
> SELECT username, domain, CONCAT('*:bytes=', SUBSTRING_INDEX(quota, 'm', 1)*1048576) AS userdb_quota_rule
> FROM mailboxes, domains WHERE mailboxes.username = 'junix at domain.com' AND domains.domain = 'domain.com'

1) your manual query uses '*:bytes=', whereas your conf uses '*:storage='.
2) you return the value as userdb_quota_rule, but it must read quota_rule 
in the user_query. In the password_query fields are prefixed by userdb_ .

See http://wiki2.dovecot.org/Quota/Configuration

- -- 
Steffen Kaiser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEVAwUBVCzxqnz1H7kL/d9rAQIneAgAukcibxJoQdtwdmrxHbXmKgQsCG22itH5
9VSFGigiPjXg/F1hkj7jHC/xB5uh2M8ayMos+hPxaJkKC4AKYEZu1QEwXAX2qrvN
DXt7uPZHLJSMtlWCVb5s6h+v6K3JnbWRrjI4CIfYqB8i8MHKBWei0K02QZcOUOfy
KeD7lAIPRuZPnIEiWYREpalRMGeQzZ69SHEmhxDx7VFO5FanlHDxdCwmO7qHoJen
ZuNpUWMf5i5czxcDhHjLdtGODv005LFDCXhj48SqI17WzD3mPjJegOCjym6RfKmU
RT+PtKieBkzygT1YzvjJbHISFxJSryVg8c48tCb0FgjkNKWXq/KsPg==
=wzY8
-----END PGP SIGNATURE-----


More information about the dovecot mailing list