Esta es una entrada dentro de la serie para la instalación de un servidor de correo completo. Índice completo de contenidos pincha aquí.
En la presente entrada vamos a configurar las Quotas del buzón, es decir el tamaño de uso permitido por buzón, tanto para Postfix como Dovecot.
Configurar Dovecot Quota
Editamos el archivo /etc/dovecot/doveco.conf y agregamos las siguientes líneas al final:
# Quota para POSTFIX service quota-status { executable = quota-status -p postfix inet_listener { port = 12340 # You can choose any port you want } client_limit = 1 }
Con esto indicamos que en el puerto 12340 se va a poder consultar el estado de la cuota de un buzón, por ejemplo desde Postfix.
Reiniciamos Dovecot con:
systemctl restart dovecot
Dovecot
Vamos a configurar una Quota global para todos los buzones. Lo suyo sería configurarlo en el backend MySQL, pero no fui capaz de que funcionara.
Tenemos que habilitar tres plugins de Dovecot:
- Quota: implementa la quota actual configurada.
- Imap_quota: para reportar la quota vía IMAP.
- Quota_grace: determina cuánto se puede superar el límite cuando es superado.
Archivo /etc/dovecot/conf.d/10-mail.conf:
# Space separated list of plugins to load for all services. Plugins specific to # IMAP, LDA, etc. are added to this list in their own .conf files. mail_plugins = $mail_plugins quota
Archivo /etc/dovecot/conf.d/20-imap.conf, agregando los plugins quota e imap_quota:
protocol imap { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins imap_quota quota mail_log notify … }
Archivo /etc/dovecot/conf.d/90-quota.conf para configurar las quotas de los buzones y el mensaje de alerta según los porcentajes configurados:
plugin { quota = maildir:User quota quota_rule = *:storage=10G quota_rule2 = Trash:storage=+100M quota_rule3 = SPAM:storage=+100M quota_grace = 10%% quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full" quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u quota_exceeded_message = You have exceded the máximum size of your mailbox. Please, free up space. } service quota-warning { executable = script /usr/local/scripts/quota-warning.sh user = vmail unix_listener quota-warning { user = vmail } }
Y además lo agregamos al servicio Pop /etc/dovecot/conf.d/20-pop3.conf:
… protocol pop3 { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins quota mail_log notify … }
Ahora el archivo de BASH que contiene el script para el quota-warning indicado antes /usr/local/scripts/quota-warning.sh contiene lo siguiente, recuerda actualizar la cuenta From por la que consideres oportuna:
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=count:User quota:noenforcing" From: email@email.com To: $USER Subject: Alerta de espacio en buzon Su buzon de correo esto al $PERCENT% de su capacidad. Reciba un cordial saludo. Su equipo de soporte de Yeloquehay. EOF
Reiniciamos dovecot con:
systemctl restart dovecot
Postfix
Ahora editamos el archivo de Postfix /etc/postfix/main.cf para indicarle donde chequear el estado de almacenamiento de un buzón, en el grupo smtpd_recipient_restrictions:
smtpd_recipient_restrictions = ... check_policy_service inet:127.0.0.1:12340
Reiniciamos Postfix con:
systemctl restart postfix
Índice general pincha aquí.