Hi all,
I'm trying to make quota work in Squeeze (Dovecot 1.2.15-7).
The quota module is correctly loaded and, when receiving a message, from
the log I see these messages:
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): Loading
modules from directory: /usr/lib/dovecot/modules/lda
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): Module
loaded: /usr/lib/dovecot/modules/lda/lib10_quota_plugin.so
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): Module
loaded: /usr/lib/dovecot/modules/lda/lib90_sieve_plugin.so
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): auth
input: uid=5000
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): auth
input: gid=5000
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): auth
input: home=/mail/mailboxes/<mydomain>/testquota
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): Quota
root: name=/mail/mailboxes/<mydomain>/testquota backend=maildir argsJan 16
11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): maildir:
data=/mail/mailboxes/<mydomain>/testquota@<mydomain>
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>):
maildir++: root=/mail/mailboxes/<mydomain>/testquota@<mydomain>,
index=,
control=, inbox=/mail/mailboxes/<mydomain>/testquota@<mydomain>
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): sieve:
user's script path /mail/mailboxes/<mydomain>/testquota/.dovecot.sieve
doesn't exist (using global script path in stead)
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): sieve:
using sieve path for user's script: /mail/sieve/globalsieverc
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): sieve:
opening script /mail/sieve/globalsieverc
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): sieve:
executing compiled script /mail/sieve/globalsieverc
Jan 16 11:20:04 mail-1 dovecot: deliver(testquota@<mydomain>): Namespace
: Using permissions from
/mail/mailboxes/<mydomain>/testquota@<mydomain>: mode=0700 gid=-1
Jan 16 11:20:05 mail-1 dovecot: deliver(testquota@<mydomain>): sieve:
msgid=<4F13F996.4000501 at seat.it>: stored mail into mailbox
'INBOX'
Now, since I've got a message like this:
Quota root: name=/mail/mailboxes/<mydomain>/testquota@<mydomain>
backend=maildir args
it seems that something is checked, but even if this directory is over
quota, nothing happens.
This is my dovecot conf:
protocols = imap pop3
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/mail/mailboxes/%d/%n@%d
mail_privileged_group = mail
mail_debug = yes
mail_nfs_storage = yes
mmap_disable=yes
fsync_disable=no
mail_nfs_index = yes
protocol imap {
mail_plugins = quota imap_quota
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
protocol managesieve {
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@<mydomain>
mail_plugins = sieve quota
quota_full_tempfail = no
log_path }
auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb passwd {
}
userdb static {
args = uid=5000 gid=5000 home=/mail/mailboxes/%d/%n@%d
allow_all_users=yes
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
plugin {
quota = maildir:/mail/mailboxes/%d/%n@%d
sieve_global_path = /mail/sieve/globalsieverc
}
The db connection works, this is /etc/dovecot/dovecot-sql.conf:
driver = mysql
connect = host=<myserver> dbname=mail user=<myuser>
password=<mypassword>
default_pass_scheme = CRYPT
password_query = SELECT username, password FROM mailbox WHERE
username='%u'
user_query = SELECT username AS user, maildir AS home,
CONCAT('*:storage=', quota , 'B') AS quota_rule FROM mailbox
WHERE
username = '%u' AND active = '1'
and for the user testquota the user_query results in this:
+-------------------+----------------------------+--------------------+
| user | home | quota_rule |
+-------------------+----------------------------+--------------------+
| testquota@<mydom> | <mydom>/testquota@<mydom>/ |
*:storage=1024000B |
+-------------------+----------------------------+--------------------+
everything else is ok, for example I'm using sieve for the spam filter,
and the SPAM is correctly put in the .SPAM dir.
I turned on debug on dovecot, but I can't see if the query in some way
fails.
Can you please help me to understand what am I doing wrong?
--
RaSca
Mia Mamma Usa Linux: Niente ? impossibile da capire, se lo spieghi bene!
rasca at miamammausalinux.org
http://www.miamammausalinux.org
Simone Caruso
2012-Jan-16 15:40 UTC
[Dovecot] Quota is not working (Debian Squeeze - Dovecot 1.2)
On 16/01/2012 11:42, RaSca wrote:> Hi all, > I'm trying to make quota work in Squeeze (Dovecot 1.2.15-7).try "auth_debug = yes" -- Simone Caruso IT Consultant +39 349 65 90 805
Timo Sirainen
2012-Jan-18 14:56 UTC
[Dovecot] Quota is not working (Debian Squeeze - Dovecot 1.2)
On Mon, 2012-01-16 at 11:42 +0100, RaSca wrote:> passdb sql { > args = /etc/dovecot/dovecot-sql.conf > } > userdb passwd { > } > userdb static { > args = uid=5000 gid=5000 home=/mail/mailboxes/%d/%n@%d > allow_all_users=yes > }You're using SQL only for passdb lookup.> plugin { > quota = maildir:/mail/mailboxes/%d/%n@%dThe above path probably doesn't do what you intended. It's only the user-visible quota root name. It could just as well be "User quota" or something.> The db connection works, this is /etc/dovecot/dovecot-sql.conf: > > driver = mysql > connect = host=<myserver> dbname=mail user=<myuser> password=<mypassword> > default_pass_scheme = CRYPT > password_query = SELECT username, password FROM mailbox WHERE username='%u' > user_query = SELECT username AS user, maildir AS home, > CONCAT('*:storage=', quota , 'B') AS quota_rule FROM mailbox WHERE > username = '%u' AND active = '1'user_query isn't used, because you aren't using userdb sql.