dovecot-sql.conf:
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfix
default_pass_scheme = MD5-CRYPT
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u' AND domain = '%d' AND active = '1'
user_query = \
SELECT 1015 as uid, 105 as gid, '/var/spool/mail/%d/%n' as home, \
'maildir:/var/spool/mail/%d/%n/Maildir' as mail, \
concat('*:storage=', quota, 'B') as quota_rule, \
FROM mailbox WHERE username = '%u' AND domain = '%d' and active = '1'
dovecot.conf
quota = maildir
quota_rule = *:storage=102400
quota_warning = storage=95%% /usr/local/sbin/quota_notify 95
quota_warning2 = storage=80%% /usr/local/sbin/quota_notify 80
Telnet:
Connected to 127.0.0.1.
Escape character is '^]'.
* OK Dovecot ready.
. login [EMAIL PROTECTED] Test111
. OK Logged in.
. getquotaroot inbox
* QUOTAROOT "inbox" ""
* QUOTA "" (STORAGE 67 102400)
. OK Getquotaroot completed.
Quota still shows what's in dovecot.conf
/var/log/maillog
Oct 8 17:16:23 webmail dovecot: auth(default): client in:
AUTH^I1^IPLAIN^Iservice=imap^Isecured^Ilip=127.0.0.1^Irip=127.0.0.1^Ilport=143^Irport=49601^Iresp=<hidden>
Oct 8 17:16:23 webmail dovecot: auth-worker(default):
sql([EMAIL PROTECTED],127.0.0.1): query: SELECT username, domain,
password FROM mailbox WHERE username = '[EMAIL PROTECTED]' AND
domain = 'example.com' AND active = '1'
Oct 8 17:16:23 webmail dovecot: auth(default): client out:
[EMAIL PROTECTED]
Oct 8 17:16:23 webmail dovecot: auth(default): master in:
REQUEST^I11^I23281^I1
Oct 8 17:16:23 webmail dovecot: auth(default):
passwd([EMAIL PROTECTED],127.0.0.1): lookup
Oct 8 17:16:23 webmail dovecot: auth(default):
passwd([EMAIL PROTECTED],127.0.0.1): unknown user
Oct 8 17:16:23 webmail dovecot: auth-worker(default):
sql([EMAIL PROTECTED],127.0.0.1): SELECT 1015 as uid, 105 as gid,
'/var/spool/mail/example.com/test111' as home,
'maildir:/var/spool/mail/example.com/test111/Maildir' as mail,
concat('*:storage=', quota, 'B') as quota_rule, FROM mailbox WHERE
username = '[EMAIL PROTECTED]' AND domain = 'example.com' and active = '1'
Oct 8 17:16:23 webmail dovecot: auth-worker(default):
sql([EMAIL PROTECTED],127.0.0.1): User query failed: You have an
error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'FROM mailbox
WHERE username = '[EMAIL PROTECTED]' AND domain = 'example.c' at line 1
Oct 8 17:16:23 webmail dovecot: auth(default): master out:
[EMAIL PROTECTED]
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Loading
modules from directory: /usr/local/lib/dovecot/imap
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib11_imap_quota_plugin.so
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Effective
uid=1015, gid=105, home=
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
root: name= backend=maildir args=
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
rule: root= mailbox=* bytes=104857600 (0%) messages=0 (0%)
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=99614720 (95%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 95
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=83886080 (80%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 80
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]): maildir:
data=/var/spool/mail/example.com/test111/Maildir
Oct 8 17:16:23 webmail dovecot: IMAP([EMAIL PROTECTED]):
maildir++: root=/var/spool/mail/example.com/test111/Maildir, index=,
control=, inbox=/var/spool/mail/example.com/test111/Maildir
Oct 8 17:16:23 webmail dovecot: imap-login: Login:
user=<[EMAIL PROTECTED]>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
It looks like the error is in all likelihood here:
'/var/spool/mail/example.com/test111' as home,
'maildir:/var/spool/mail/example.com/test111/Maildir' as mail,
concat('*:storage=', quota, 'B') as quota_rule, FROM mailbox WHERE
username = '[EMAIL PROTECTED]' AND domain = 'example.com' and active = '1'
Oct 8 17:16:23 webmail dovecot: auth-worker(default):
sql([EMAIL PROTECTED],127.0.0.1): User query failed: You have an
error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'FROM mailbox
WHERE username = '[EMAIL PROTECTED]' AND domain = 'example.c' at line 1
What's interesting is that it's not truncated in the line above it
wt?
Rick
At 04:46 PM 10/8/2008, Timo Sirainen wrote:
On Wed, 2008-10-08 at 16:29 -0400, [EMAIL PROTECTED] wrote:
> >Enable auth_debug=yes and mail_debug=yes and look at the logs. It should
> >show quota_rule being sent as part of "master out" line.
>
> I enabled both of those. in /var/log/maillog I'm don't see a "master" line.
It should have been before the "Module loaded" etc stuff. Inside the
authentication. But anyway:
> Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
> root: name=storage=10240 backend=maildir args=
This looks wrong. Your quota root name is "storage=10240", which really
isn't what you want.
> Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
> rule: root=storage=10240 mailbox=* bytes=104857600 (0%) messages=0 (0%)
This is ok.
> concat('maildir:storage=', quota) as quota, \
Remove this entirely.
> concat('*:storage=', quota, '') as quota_rule, \
You also broke this now. :)