It's also worth noting that
"plugin/quota_rule=*:bytes=%$"
does not expand to anything as options given from command line are not expanded. So bytes should actually have a numerical value instead of %$.
Aki
On 08/04/2021 12:37 Gonzalo Palacios Goicolea <gonzalo.palacios@externo.uam.es> wrote:
Hi Just for if it's helpful for anyone, I have solved the issue modifying the quota-warning script. I realized about this log line: Apr 8 09:34:24 server dovecot: lda(user@domain.es): Debug: Ignoring overridden (-o) userdb setting: plugin/quota_rule
So I changed at the script this line
#cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota_rule=*:bytes=%$" whit this one:
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER
And now it's working fine. Best regards
El 25/03/2021 a las 12:30, Gonzalo Palacios Goicolea escribió:
Hi, More info. At previous version (dovecot-2.2.10-1_14.el6.x86_64) we didn't installed dovecot-pigeonhole, but for this one (dovecot-2.2.36-8.el7.x86_64) it was mandatory or dovecot didn't start because of this error: "doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf: protocols: Unknown protocol: sieve" May it be related?
Thanks and best regards
El 22/03/2021 a las 8:47, Gonzalo Palacios Goicolea escribió:
Hi Has anyone experienced this issue? I'm not able to debug it.
Config, users, permissions, etc are the same as in the previous version, where it worked without problems.
If anyone can help it would be appreciated, I don't know what else look. Thanks and best regards
El 16/03/2021 a las 11:40, Gonzalo Palacios Goicolea escribió:
Hi All, Since upgrading to RHEL7 and 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.
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.
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.
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.