(and oops forgot to get my last post on the list)
Hmm, I pulled a cleaner log file and got this:
Oct 8 16:44:51 webmail dovecot: auth(default): new auth connection: pid=14573
Oct 8 16:44:55 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=50346^Iresp=<hidden>
Oct 8 16:44:55 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 16:44:55 webmail dovecot: auth(default): client out:
[EMAIL PROTECTED]
Oct 8 16:44:55 webmail dovecot: auth(default): master in:
REQUEST^I28^I14248^I1
Oct 8 16:44:55 webmail dovecot: auth(default):
passwd([EMAIL PROTECTED],127.0.0.1): lookup
Oct 8 16:44:55 webmail dovecot: auth(default):
passwd([EMAIL PROTECTED],127.0.0.1): unknown user
Oct 8 16:44:55 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('maildir:storage=', quota) as quota, concat('*:storage=',
quota, '') as quota_rule, FROM mailbox WHERE username =
'[EMAIL PROTECTED]' AND domain = 'example.com' and active = '1'
Oct 8 16:44:55 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 = 'exampl' at line 1
Oct 8 16:44:55 webmail dovecot: auth(default): master out:
[EMAIL PROTECTED]
Oct 8 16:44:55 webmail dovecot: imap-login: Login:
user=<[EMAIL PROTECTED]>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Loading
modules from directory: /usr/local/lib/dovecot/imap
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib11_imap_quota_plugin.so
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Effective
uid=1015, gid=105, home=
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
root: name=storage=10240 backend=maildir args=
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
rule: root=storage=10240 mailbox=* bytes=104857600 (0%) messages=0 (0%)
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=99614720 (95%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 95
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=83886080 (80%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 80
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]): maildir:
data=/var/spool/mail/example.com/test111/Maildir
Oct 8 16:44:55 webmail dovecot: IMAP([EMAIL PROTECTED]):
maildir++: root=/var/spool/mail/example.com/test111/Maildir, index=,
control=, inbox=/var/spool/mail/example.com/test111/Maildir
I see a sql error in there, but it doesn't make any sense. Why would
it hack off the last part of the domain? (domain names have been
changed to protect the innocent, it was truncated at 9 characters)
rick
At 04:29 PM 10/8/2008, Rick Steeves wrote:
At 03:27 PM 10/8/2008, Timo Sirainen wrote:
Note that dirsize is superslow with maildir. quota=maildir is much
better.
Yeah, I knew that, but was trying the simplest option. I've now
switched everything over to maildir.
> concat('*:storage=', quota, 'B') as quota_rule, \
Looks correct. A bit simpler would be concat('*:bytes=',quota)
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.
Here's the log files:
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib10_quota_plugin.so
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Module
loaded: /usr/local/lib/dovecot/imap/lib11_imap_quota_plugin.so
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]):
Effective uid=1015, gid=105, home=
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
root: name=storage=10240 backend=maildir args=
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
rule: root=storage=10240 mailbox=* bytes=104857600 (0%) messages=0 (0%)
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=99614720 (95%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 95
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): Quota
warning: bytes=83886080 (80%) messages=0 (0%)
command=/usr/local/sbin/quota_notify 80
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]): maildir:
data=/var/spool/mail/example.com/test111/Maildir
Oct 8 16:30:32 webmail dovecot: IMAP([EMAIL PROTECTED]):
maildir++: root=/var/spool/mail/example.com/test111/Maildir, index=,
control=, inbox=/var/spool/mail/example.com/test111/Maildir
I've been tweaking things as I try to figure it out, so I include
the current ones just in case it's critical to what I'm doing wrong
I DO get dovecot to report quotas, they just don't match the quota
in sql (which for this user currently is 0:
| [EMAIL PROTECTED] | encryptedpassword | Test TEST |
example.com/test111/ | 0 | example.com | 2008-09-30 17:24:2
dovecot.conf:
quota = maildir:storage=10240
quota_rule = *:storage=102400
quota_warning = storage=95%% /usr/local/sbin/quota_notify 95
quota_warning2 = storage=80%% /usr/local/sbin/quota_notify 80
dovecot-sql.conf:
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=pfix1723
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('maildir:storage=', quota) as quota, \
concat('*:storage=', quota, '') as quota_rule, \
FROM mailbox WHERE username = '%u' AND domain = '%d' and active = '1'
Thanks
Rick