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.palac...@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(u...@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.