[Dovecot] Why is my quota warning script not getting executed?

Darek M fafaforza at gmail.com
Tue Apr 26 20:34:05 EEST 2011


Storing my users and quota in MySQL,running Dovecot 1.2.16, and
followed the page at http://wiki1.dovecot.org/Quota/Dict  I'm burning
my eyes trying to find any syntax issues but can't.  I'm including
output of dovecot -n and the quota2 table schema below.

dovecot.conf:
==========
dict {
 quotadict = mysql:/usr/local/etc/postfix/dovecot-dict-sql.conf
}
plugin {
 quota = dict:emailaccount::proxy::quotadict
 quota_warning95 = storage=95%% /usr/local/bin/dovecot-quota-warning.sh 95
 quota_warning90 = storage=90%% /usr/local/bin/dovecot-quota-warning.sh 90
 quota_warning80 = storage=80%% /usr/local/bin/dovecot-quota-warning.sh 80
}


/usr/local/etc/postfix/dovecot-dict-sql.conf:
===============================
# v1.2+ only:
connect = host=/tmp/mysql.sock dbname=postfix user=postfix password=****
map {
 pattern = priv/quota/storage
 table = quota2
 username_field = username
 value_field = bytes
}
map {
 pattern = priv/quota/messages
 table = quota2
 username_field = username
 value_field = messages
}


A log of 90% being passed:

# vuserinfo darek at domain.com

       Email: darek at domain.com
       Name: Darek
       Maildir: domain.com/darek/
       Created: 2011-04-11 18:08:05
       Modified: 2011-04-25 17:30:26

       Quota: 25,000K (24.41M)
       Used:  21,380.29K (20.88M)
       Usage: 85.52%

Apr 26 11:57:53 deliver(darek at domain.com): Info: Loading modules from
directory: /usr/local/lib/dovecot/lda
Apr 26 11:57:53 deliver(darek at domain.com): Info: Module loaded:
/usr/local/lib/dovecot/lda/lib10_quota_plugin.so
Apr 26 11:57:53 deliver(darek at domain.com): Info: Module loaded:
/usr/local/lib/dovecot/lda/lib90_sieve_plugin.so
Apr 26 11:57:53 deliver(darek at domain.com): Info: auth input:
home=/home/vmail/domain.com/darek/
Apr 26 11:57:53 deliver(darek at domain.com): Info: auth input:
mail=maildir:/home/vmail/domain.com/darek/
Apr 26 11:57:53 deliver(darek at domain.com): Info: auth input: uid=5000
Apr 26 11:57:53 deliver(darek at domain.com): Info: auth input: gid=5000
Apr 26 11:57:53 deliver(darek at domain.com): Info: auth input:
quota_rule=*:bytes=25600000
Apr 26 11:57:53 deliver(darek at domain.com): Info: Quota root:
name=emailaccount backend=dict args=:proxy::quotadict
Apr 26 11:57:53 deliver(darek at domain.com): Info: Quota rule:
root=emailaccount mailbox=* bytes=25600000 messages=0
Apr 26 11:57:53 deliver(darek at domain.com): Info: dict quota:
user=darek at domain.com, uri=proxy::quotadict, noenforcing=0
Apr 26 11:57:53 deliver(darek at domain.com): Info: maildir:
data=/home/vmail/domain.com/darek/
Apr 26 11:57:53 deliver(darek at domain.com): Info: maildir++:
root=/home/vmail/domain.com/darek, index=, control=,
inbox=/home/vmail/domain.com/darek
Apr 26 11:57:53 deliver(darek at domain.com): Info: dict quota:
user=darek at domain.com, uri=proxy::quotadict, noenforcing=0
Apr 26 11:57:53 deliver(darek at domain.com): Info: sieve: user's script
path /home/vmail/domain.com/darek/sieve/darek at domain.com.sieve doesn't
exist (using global script path in stead)
Apr 26 11:57:53 deliver(darek at domain.com): Info: sieve: user has no
valid personal script
Apr 26 11:57:53 deliver(darek at domain.com): Info: sieve: no scripts to
execute: reverting to default delivery.
Apr 26 11:57:53 deliver(darek at domain.com): Info: Namespace : Using
permissions from /home/vmail/domain.com/darek: mode=0700 gid=-1
Apr 26 11:57:53 dict: Info: mysql: Connected to /tmp/mysql.sock (postfix)
Apr 26 11:57:53 deliver(darek at domain.com): Info:
msgid=<4DB6EB69.5010501 at server.net>: saved mail to INBOX

# vuserinfo darek at domain.com

       Email: darek at domain.com
       Name: Darek
       Maildir: domain.com/darek/
       Created: 2011-04-11 18:08:05
       Modified: 2011-04-25 17:30:26

       Quota: 25,000K (24.41M)
       Used:  23,000.09K (22.46M)
       Usage: 92.00%


Output of 'dovecot -n':
================
# 1.2.16: /usr/local/etc/dovecot.conf
# OS: FreeBSD 8.2-RELEASE i386  ufs
log_path: /var/log/dovecot/dovecot-err.log
info_log_path: /var/log/dovecot/dovecot-info.log
protocols: imap imaps pop3 pop3s managesieve
listen: , [::]
ssl_cert_file: /etc/ssl/dovecot/certs/dovecot.pem
ssl_key_file: /etc/ssl/dovecot/private/dovecot.pem
disable_plaintext_auth: no
nfs_check: no
version_ignore: yes
login_dir: /var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_executable(managesieve): /usr/local/libexec/dovecot/managesieve-login
login_process_per_connection: no
login_processes_count: 10
first_valid_uid: 5000
last_valid_uid: 5000
first_valid_gid: 5000
last_valid_gid: 5000
mail_uid: 5000
mail_gid: 5000
mail_location: maildir:/home/vmail/%d/%n
mail_debug: yes
mail_nfs_storage: yes
lock_method: dotlock
maildir_very_dirty_syncs: yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_executable(managesieve): /usr/local/libexec/dovecot/managesieve
mail_plugins(default): quota imap_quota
mail_plugins(imap): quota imap_quota
mail_plugins(pop3): quota
mail_plugins(managesieve):
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
mail_plugin_dir(managesieve): /usr/local/lib/dovecot/managesieve
lda:
 postmaster_address: supportteam at domain.net
 hostname: inbox4.domain.net
 mail_plugins: quota sieve
 sendmail_path: /usr/sbin/sendmail
auth default:
 mechanisms: plain login apop
 user: nobody
 username_translation: %@
 passdb:
   driver: sql
   args: /usr/local/etc/postfix/dovecot.sql
 userdb:
   driver: sql
   args: /usr/local/etc/postfix/dovecot.sql
 socket:
   type: listen
   client:
     path: /var/spool/postfix/private/auth
     mode: 432
     user: postfix
     group: vmail
   master:
     path: /var/run/dovecot/auth-master
     mode: 384
     user: vmail
     group: vmail
plugin:
 quota: dict:emailaccount::proxy::quotadict
 quota_warning95: storage=95%% /usr/local/bin/dovecot-quota-warning.sh 95
 quota_warning90: storage=90%% /usr/local/bin/dovecot-quota-warning.sh 90
 quota_warning80: storage=80%% /usr/local/bin/dovecot-quota-warning.sh 80
 sieve: /home/vmail/%d/%n/sieve/%n@%d.sieve
 sieve_dir: /home/vmail/%d/%n/sieve/
dict:
 quotadict: mysql:/usr/local/etc/postfix/dovecot-dict-sql.conf


Database schema:
==============

# mysql -u root postfix

mysql> describe quota2;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| username | varchar(100) | NO   | PRI | NULL    |       |
| bytes    | bigint(20)   | NO   |     | 0       |       |
| messages | int(11)      | NO   |     | 0       |       |
+----------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> select * from quota2 where username='darek at domain.com';
+------------------+----------+----------+
| username         | bytes    | messages |
+------------------+----------+----------+
| darek at domain.com | 23552090 |        7 |
+------------------+----------+----------+


--
Darek


More information about the dovecot mailing list