Image

Base de connaissances → Installation et configuration des quotas de boîtes aux lettres sur un serveur de messagerie Dovecot

[Serveurs virtuels]
Date de publication: 09.06.2023

Décrivons le paramètre de quota de boîte aux lettres, la possibilité de spécifier un quota, fournie par défaut dans postfixadmin, ne fonctionne pas et doit être configurée.  Dans notre cas, nous le configurons sur le serveur de messagerie Ubuntu\Debian pour le service Dovecot. Cette configuration permet de fixer une limite de boîte aux lettres afin de ne pas dépasser la taille du disque ssd du serveur vps, puisque toute boîte aux lettres d'entreprise peut être remplie de pièces jointes lourdes, de spam, ce qui peut entraîner une consommation importante d'espace disque.

Ce guide suppose que vous avez déjà configuré le serveur de messagerie lui-même et que vous devez configurer des quotas de boîtes aux lettres. Vous trouverez plus d'informations sur la configuration d'un serveur de messagerie ici :


Vous pouvez également commander un VPS avec un système d'exploitation préconfiguré et obtenir un serveur de messagerie d'entreprise prêt à l'emploi pour le prix d'un serveur VPS.

1. Configuration du service Dovecot

vi /etc/dovecot/conf.d/10-mail.conf

mail_plugins = $mail_plugins quota

Sauvons le fichier.

vi /etc/dovecot/conf.d/20-imap.conf

protocol imap { mail_plugins = $mail_plugins imap_quota }

Sauvons le fichier.

vi /etc/dovecot/conf.d/10-master.conf

service dict {

unix_listener dict { mode = 0660 user = vmail group = vmail } }

Sauvons le fichier.

vi /etc/dovecot/conf.d/90-quota.conf

plugin { quota = dict:User quota::proxy::quota }

Sauvons le fichier.

vi /etc/dovecot/dovecot.conf

dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }


vi /etc/dovecot/dovecot-dict-sql.conf.ext

connect = host=localhost dbname=postfix user=postfix password=postfix123

map {

pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes

}

map {

pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }

Dans la toute première ligne, vous devez spécifier les données existantes pour la connexion à la base de données, spécifiées lors de la configuration du serveur de messagerie.

vi /etc/dovecot/dovecot-sql.conf.ext

user_query = SELECT CONCAT('/home/mail/',LCASE(domain),'/',LCASE(maildir)), 1024 AS uid, 1024 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u'

Sauvons le fichier.

Redémarrons le service:

systemctl restart dovecot

Le fonctionnement du quota peut être vérifié dans la console avec la commande en spécifiant une boîte mail existante avec un quota donné dans postfixadmin:

doveadm quota get -u user@domain.tld

2. Configurer les notifications de dépassement de quota 

vi /etc/dovecot/conf.d/90-quota.conf

Ajoutez des lignes à la configuration:

plugin { 
quota_warning = storage=95%% quota-warning 95 %u 
quota_warning2 = storage=80%% quota-warning 80 %u 
}

Dans le même fichier, nous fournissons une section service quota-warning à l'esprit:

service quota-warning { 
executable = script /usr/local/bin/quota-warning.sh 
user = dovecot 
unix_listener quota-warning { 
user = vmail 
} 
}

Créons le script d'envoi des notifications:

vi /usr/local/bin/quota-warning.sh

#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.tld Subject: quota warning

Your mailbox is now $PERCENT% full.

EOF

Sauvons le fichier. Changez l'adresse e-mail à partir de laquelle l'envoi s'y fera par la vôtre. Attribuez des droits d'exécution et appliquez les paramètres:

chmod +x /usr/local/bin/quota-warning.sh
systemctl restart dovecot

Vérifions le script dans la console:

/usr/local/bin/quota-warning.sh 85 user@domain.tld

Remplacez la boîte aux lettres par une boîte existante, une lettre devrait lui parvenir.

Le paramètre de quota est terminé, si un e-mail avec une pièce jointe plus grande que la boîte aux lettres elle-même est envoyé à la boîte aux lettres, l'e-mail ne sera pas remis et l'expéditeur recevra un message indiquant que la boîte aux lettres est pleine. Maintenant, les quotas définis dans postfixadmin sont configurés et fonctionnent.





Aucun commentaire pour l'instant