Hi All,
Since upgrading to RHEL7 and dovecot-2.2.36-8.el7.x86_64 we're not able to get quota warnings work.
We get the error "User initialization failed: Failed to initialize quota: Invalid quota root quota: Invalid rule *:bytes=: Invalid bytes limit:"
mar 16 10:29:27 lda(user@domain): Quota: Executing warning:
quota-warning 90 user@domain
Mar 16 10:29:27 buzonn5 gonzalo: mar 16 10:29:27
lda(user@domain): Quota: Executing warning: quota-warning 90
user@domain
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Loading modules from directory: /usr/lib64/dovecot
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
auth USER input: user@domain
home=/buzones/externos/4/215283255776546 uid=508 gid=503
quota_rule=*:bytes=2147483648
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Ignoring overridden (-o) userdb setting: plugin/quota_rule
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Effective uid=508, gid=503,
home=/buzones/externos/4/215283255776546
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Quota root: name=_backup backend=maildir args=ns=
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
Quota rule: root=_backup mailbox=* bytes=0 messages=0
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Error:
User initialization failed: Failed to initialize quota: Invalid
quota root quota: Invalid rule *:bytes=: Invalid bytes limit:
Mar 16 10:29:27 buzonn5 dovecot: lda: Fatal: Invalid user
settings. Refer to server log for more information.
This is the quota-warning script:
#!/bin/sh
#Variables
PERCENT=$1
USER=$2
FECHA=`date '+%b %d %H:%M:%S'`
#Logueo del evento
echo "$FECHA lda($USER): Quota: Executing warning:
quota-warning $PERCENT $USER" >>
/var/log/dovecot/dovecot.log
logger -p local1.notice -f /var/log/dovecot/dovecot.log
"$FECHA lda($USER): Quota: Executing warning: quota-warning
$PERCENT $USER"
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d
$USER -o "plugin/quota_rule=*:bytes=%$"
From: postmaster at domain
Subject: Alerta de Capacidad
Date: `date`
El espacio asignado para el almacenamiento de su correo ha
superado el $PERCENT% de su capacidad total. Por ello, se
recomienda que elimine correos y/o vacie la papelera para
liberar espacio.
Mensaje enviado desde `hostname`
Atentamente,
--
Responsable correo
postmaster at domain
EOF
-----------------------------
This is 90-quota.conf
plugin {
quota = maildir:_backup:ns=
}
plugin {
quota_exceeded_message = El espacio asignado para el
almacenamiento del correo del destinatario ha superado su
capacidad total. Por ello, el correo que usted intenta enviar no
se puede entregar al destinatario.
quota_warning = storage=70%% quota-warning 70 %u
quota_warning1 = storage=90%% quota-warning 90 %u
quota_warning2 = storage=95%% quota-warning 95 %u
quota_warning3 = storage=99%% quota-warning 99 %u
}
service quota-warning {
executable = script
/etc/dovecot/scripts_notification_quota/quota-warning.sh
user = vmail
unix_listener quota-warning {
user = vmail
}
}
Getting user attibutes and quota with doveadms works right:
# doveadm user user@domain
field value
uid 508
gid 503
home /buzones/externos/4/215283255776546
mail maildir:/buzones/externos/4/215283255776546/Maildir
quota_rule *:bytes=2147483648
# doveadm quota get -u user@domain
Quota name Type Value
Limit
%
_backup STORAGE 1153093
2097152
54
_backup MESSAGE 44347 -
It also works fine with ldapsearch
# ldapsearch -x -D "cn=mail_admin,cn=users,dc=domain,dc=es" -w
********** -b "dc=domain,dc=es" -h ldap.host mail=user@domain
mailquotasize
# extended LDIF
#
# LDAPv3
# base <dc=domain,dc=es> with scope subtree
# filter: mail=user@domain
# requesting: mailquotasize
#
# user@domain, users, domain.es
dn: cn=user@domain,cn=users,dc=domain,dc=es
mailquotasize: 2147483648
I've been googling but I can't find where the problem may be. Can
you please help me?
This is the whole config:
doveconf -n
# 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.24 (124e06aa)
# OS: Linux 3.10.0-1160.6.1.el7.x86_64 x86_64 Red Hat
Enterprise Linux Server release 7.9 (Maipo)
# Hostname: host.domain
auth_cache_negative_ttl = 5 mins
auth_cache_size = 500 M
auth_cache_ttl = 5 mins
auth_failure_delay = 5 secs
default_vsz_limit = 1 G
disable_plaintext_auth = no
hostname = host.domain
imap_logout_format = in(bytes read)=%i out(bytes sent)=%o
listen = *
lock_method = dotlock
mail_fsync = always
mail_location = maildir:%h/Maildir
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = " quota mail_log notify"
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date index ihave duplicate mime foreverypart
extracttext imapflags notify
mbox_write_locks = fcntl
mmap_disable = yes
namespace {
location = maildir:%h/Maildir/_backup
prefix = _backup.
separator = .
type = private
}
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
mail_log_events = delete undelete expunge mailbox_delete
mailbox_rename mailbox_create save
mail_log_fields = uid box msgid from subject
quota = maildir:_backup:ns=
quota_exceeded_message = El espacio asignado para el
almacenamiento del correo del destinatario ha superado su
capacidad total. Por ello, el correo que usted intenta enviar no
se puede entregar al destinatario.
quota_warning = storage=70%% quota-warning 70 %u
quota_warning1 = storage=90%% quota-warning 90 %u
quota_warning2 = storage=95%% quota-warning 95 %u
quota_warning3 = storage=99%% quota-warning 99 %u
sieve = ~/.dovecot.sieve
sieve_dir = ~/Maildir/sieve
sieve_extensions = +notify +imapflags
}
postmaster_address = postmaster@domain
protocols = imap pop3 sieve
service auth {
unix_listener auth-userdb {
group = vmail
mode = 0777
user = vmail
}
}
service imap-login {
inet_listener imap {
port = 143
}
process_min_avail = 20
}
service imap {
process_limit = 2048
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
inet_listener sieve_deprecated {
port = 2000
}
process_min_avail = 20
}
service pop3-login {
inet_listener pop3 {
port = 110
}
process_min_avail = 20
}
service pop3 {
process_limit = 2048
}
service quota-warning {
executable = script
/etc/dovecot/scripts_notification_quota/quota-warning.sh
unix_listener quota-warning {
user = vmail
}
user = vmail
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = # hidden, use -P to show it
submission_host = smtpi.domain:25
syslog_facility = local1
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
protocol lda {
mail_plugins = " quota mail_log notify sieve"
}
protocol imap {
mail_max_userip_connections = 10000
mail_plugins = " quota mail_log notify imap_quota"
}
protocol pop3 {
mail_max_userip_connections = 10
}
Thanks and best regards
Gonzalo
Palacios Goicolea
U.T de Infraestructura de Equipos Centrales
Tecnologías de la
Información
Universidad
Autónoma de Madrid • Campus
de Cantoblanco
Antes de
imprimir este correo piense si es necesario.Cuidemos el
medioambiente.