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í.