Oggetto:
Re: [Dovecot] Problem with quota dovecot as lda and mysql
Da:
Claudio Prono <claudio.prono@atpss.net>
Data:
Mon, 27 Oct 2008 11:19:11 +0100
A:
Dovecot Mailing List <dovecot@dovecot.org>
deliver(test@test.com): Oct 27 12:15:39 Info: Loading modules from
directory: /usr/lib/dovecot/modules/lda
deliver(test@test.com): Oct 27 12:15:39 Info: Module loaded:
/usr/lib/dovecot/modules/lda/lib10_quota_plugin.so
deliver(test@test.com): Oct 27 12:15:39 Info: auth input: test@test.com
deliver(test@test.com): Oct 27 12:15:39 Info: auth input:
maildir=test.com/test@test.com/
deliver(test@test.com): Oct 27 12:15:39 Info: auth input: uid=51
deliver(test@test.com): Oct 27 12:15:39 Info: auth input: gid=51
deliver(test@test.com): Oct 27 12:15:39 Info: auth input:
quota=dirsize:storage=15000
deliver(test@test.com): Oct 27 12:15:39 Info: Quota root:
name=storage=15000 backend=dirsize args=
deliver(test@test.com): Oct 27 12:15:39 Info: maildir:
data=/var/mail/virtual/test.com/test@test.com
deliver(test@test.com): Oct 27 12:15:39 Info: maildir++:
root=/var/mail/virtual/test.com/test@test.com, index=, control=,
inbox=/var/mail/virtual/test.com/test@test.com
deliver(test@test.com): Oct 27 12:15:40 Info:
msgid=<490594E1.5000802@atpss.net>: saved mail to INBOX
Claudio.
Hello to all,
That is my situation: I am trying to use dovecot as LDA with postfix,
mysql e postfixadmin. So, all the users are stored in mysql, with quota
password and all other things. All works properly, except for quota. I
am trying to do some tests, but is not clear to me how to debug that
problem.
Scenario: user with 15 Mb of quota.
That is my dovecot.conf (dovecot version 1.1.3 on OpenSuSE 11.0):
dovecot -n
1.1.3: /etc/dovecot/dovecot.conf
log_path: /var/log/dovecot-err.log
info_log_path: /var/log/dovecot-inf.log
protocols: imap imaps pop3 pop3s
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
first_valid_uid: 51
last_valid_uid: 51
first_valid_gid: 51
last_valid_gid: 51
mail_location: maildir:/var/mail/virtual/%d/%u
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_plugins(default): quota imap_quota
mail_plugins(imap): quota imap_quota
mail_plugins(pop3): quota
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
imap_client_workarounds(default): outlook-idle
imap_client_workarounds(imap): outlook-idle
imap_client_workarounds(pop3):
pop3_uidl_format(default): %08Xu%08Xv
pop3_uidl_format(imap): %08Xu%08Xv
pop3_uidl_format(pop3): %Mf
auth default:
passdb:
driver: sql
args: /etc/dovecot/dovecot-mysql.conf
userdb:
driver: passwd
userdb:
driver: sql
args: /etc/dovecot/dovecot-mysql.conf
socket:
type: listen
master:
path: /var/run/dovecot/auth-master
mode: 384
plugin:
quota: maildir
quota: maildir:user quota
And this is my dovecot-mysql.conf:
driver = mysql
connect = host=127.0.0.1 port=3306 user=postfix password=XXXXXXXXXXX
dbname=postfix
default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password,
'/var/mail/virtual/%d/%u' as
userdb_home,'maildir:/var/mail/virtual/%d/%u' , 51 as userdb_uid, 51 as
userdb_gid FROM mailbox WHERE username = '%n@%d' AND active = '1'
user_query = SELECT maildir, 51 AS uid, 51 AS gid,
concat('dirsize:storage=', ROUND( mailbox.quota / 1024 ) ) AS quota FROM
mailbox WHERE username = '%u' AND active = '1'
But.. when i send a mail that "overquota" the mailbox, nothing happens,
the mail is normally delivered to maildir and the quota is not considered.
An example of the process:
I take a mailbox with 15Mb of quota, like test@test.com:
Email Nome Quota (MB) Ultima modifica Attivo
test@test.com test 15 2008-10-27 11:47:43 SI
<edit-active.php?username=test%40test.com&domain=test.com> modifica
<edit-mailbox.php?username=test%40test.com&domain=test.com> cancella
<delete.php?table=mailbox&delete=test%40test.com&domain=test.com>
I try to send an email to it:
Oct 27 11:48:53 dns postfix/smtpd[3489]: connect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:48:53 dns postfix/smtpd[3489]: D8DF2837:
client=cla.mediaservice.pri[192.168.87.70]
Oct 27 11:48:53 dns postfix/cleanup[3494]: D8DF2837:
message-id=<49058EB2.5080208@atpss.net>
Oct 27 11:48:58 dns postfix/qmgr[2636]: D8DF2837:
from=<claudio.prono@atpss.net>, size=7716371, nrcpt=1 (queue active)
Oct 27 11:48:58 dns postfix/smtpd[3489]: disconnect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:48:59 dns postfix/pipe[3496]: D8DF2837: to=<test@test.com>,
relay=dovecot, delay=5.6, delays=4.9/0/0/0.71, dsn=2.0.0, status=sent
(delivered via dovecot service)
Oct 27 11:48:59 dns postfix/qmgr[2636]: D8DF2837: removed
Fine, the mail was put into mailbox.
dns:/var/mail/virtual/test.com/test@test.com # du -h
0 ./cur
7.3M ./new
0 ./tmp
7.3M .
Now i try to put in overquota the mailbox with other 2 mails of the same
dimension.
First one:
Oct 27 11:50:52 dns postfix/smtpd[3684]: connect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:50:52 dns postfix/smtpd[3684]: 220D4837:
client=cla.mediaservice.pri[192.168.87.70]
Oct 27 11:50:52 dns postfix/cleanup[3689]: 220D4837:
message-id=<49058F28.8050004@atpss.net>
Oct 27 11:51:13 dns postfix/qmgr[2636]: 220D4837:
from=<claudio.prono@atpss.net>, size=7716372, nrcpt=1 (queue active)
Oct 27 11:51:13 dns postfix/smtpd[3684]: disconnect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:51:14 dns postfix/pipe[3691]: 220D4837: to=<test@test.com>,
relay=dovecot, delay=22, delays=22/0.01/0/0.56, dsn=2.0.0, status=sent
(delivered via dovecot service)
Oct 27 11:51:14 dns postfix/qmgr[2636]: 220D4837: removed
dns:/var/mail/virtual/test.com/test@test.com # du -h
0 ./cur
15M ./new
0 ./tmp
15M .
That's ok, the quota is 15Mb, next mail...
Oct 27 11:52:27 dns postfix/smtpd[3684]: connect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:52:27 dns postfix/smtpd[3684]: 4441D837:
client=cla.mediaservice.pri[192.168.87.70]
Oct 27 11:52:27 dns postfix/cleanup[3689]: 4441D837:
message-id=<49058F87.4010600@atpss.net>
Oct 27 11:52:49 dns postfix/qmgr[2636]: 4441D837:
from=<claudio.prono@atpss.net>, size=7716371, nrcpt=1 (queue active)
Oct 27 11:52:49 dns postfix/smtpd[3684]: disconnect from
cla.mediaservice.pri[192.168.87.70]
Oct 27 11:52:50 dns postfix/pipe[3691]: 4441D837: to=<test@test.com>,
relay=dovecot, delay=23, delays=22/0.01/0/0.56, dsn=2.0.0, status=sent
(delivered via dovecot service)
Oct 27 11:52:50 dns postfix/qmgr[2636]: 4441D837: removed
Wrong! The mail quota was not seen, and in fact...
dns:/var/mail/virtual/test.com/test@test.com # du -h
0 ./cur
22M ./new
0 ./tmp
22M .
Overquota is here!
Any suggestion? I have already readed the quota howto of dovecot, with
no results, all seems ok, but quota is not used... PLS HELP!!!
Thank u in advance,
Claudio Prono.