Dans cet article nous allons voir comment créer des filtres ” sieve ” pour trier et sélectionner le courrier entrant sur un serveur linux ubuntu:
- Filtrage par courriel :
- bulletins d’informations qui n’ont pas de liens de désabonnement.
- Les spams
- courriels aux expéditeurs inconnus.
- courriels non signés : SPF et DKIM.
- Filtrage global pour dispatcher le courriel dans les dossiers adéquates.
- Déplacement des spam dans le dossier des indésirables (automatiquement).
Installation de dovecot-sieve et dovecot-managesieve
sudo apt-get install dovecot-sieve dovecot-managesieved
Veuillez noter que l’installation d’un sieve sans spamassassin ne filtrera pas automatiquement les messages indésirables.
Configuration dovecot – sieve
1 – Activer le support plugin de sieve pour dovecot-lmtp
sudo nano /etc/dovecot/conf.d/20-lmtp.conf
2 – Ajoutez ce qui suit, tout en faisant attention à changer “example.com” par le nom de votre domaine. Il s’agis la d’une adresse e-mail valide de l’administrateur du serveur.
protocol lmtp { postmaster_address = admin@example.com mail_plugins = $mail_plugins sieve }
3 – En suite modifier la configuration de pour dovecot-pluign : /etc/dovecot/conf.d/90-sieve.conf
sudo nano /etc/dovecot/conf.d/90-sieve.conf
Ajouter ce qui suit:
plugin { sieve = ~/.dovecot.sieve sieve_global_path = /var/lib/dovecot/sieve/default.sieve sieve_dir = ~/sieve sieve_global_dir = /var/lib/dovecot/sieve/ }
Redémarrez dovecot pour que les modifications prennent effet :
sudo service dovecot restart
sudo service dovecot status ● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/lib/systemd/system/dovecot.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-08-21 07:34:36 CET; 2 weeks 1 days ago Docs: man:dovecot(1) http://wiki2.dovecot.org/ Main PID: 667 (dovecot) Tasks: 5 (limit: 2281) Memory: 22.5M CGroup: /system.slice/dovecot.service ├─ 667 /usr/sbin/dovecot -F ├─ 844 dovecot/anvil ├─ 845 dovecot/log ├─ 851 dovecot/config └─1417 dovecot/stats Sep 05 12:48:42 vps607825 dovecot[845]: lmtp(397252): Connect from local
Utilisez la commande telnet pour tester le service et pour voir si tout va bien, et que le service managesieve fonctionne et utilise le numéro de port 4190 en écoute des requêtes entrantes.
sudo telnet example.com 4190
Trying 162.243.12.140... Connected to test3.rtcamp.com. Escape character is '^]'. "IMPLEMENTATION" "Dovecot Pigeonhole" "SIEVE" "fileinto reject envelope encoded-character vacation subaddress / comparator-i;ascii-numeric relational regex imap4flags copy include variables/ body enotify environment mailbox date ihave" "NOTIFY" "mailto" "SASL" "PLAIN LOGIN" "STARTTLS" "VERSION" "1.0" OK "Dovecot ready."
Trouez ci-dessous la liste des commandes disponible pour gérer Sieve.
Liste des extensions SIEVE supportées.
Vous trouverez ci-dessous une liste des extensions SIEVE disponibles sur les serveurs Mail en général. Pour plus d’informations sur la manière d’utiliser ces extensions suivez les liens présents sur le nom de l’extension.
Vérifie la présence d’une ou plusieurs chaines de caractères dans le corps du message |
|
Extraits les chiffres d’un texte et les compare pour voir s’il y a concordance |
|
Spécifie qu’une copie d’un email doit être utilisée pour effectuer une action (comme transférer ou déplacer) |
|
Permet d’effectuer une action basé sur la date ou l’heure de réception ou d’envoi d’un email |
|
Teste si l’email est un doublon |
|
Permet l’encodage de caractères spéciaux numériquement |
|
Permet de tester de parties de l’enveloppe, comme l’adresse « Pour : » ou « De: » |
|
A utiliser avec « foreverypart », extrait une partie spécifique du texte et l’utilise comme une variable |
|
Distribue le message dans un répertoire spécifique |
|
Permet d’effectuer des commandes sur chaque partie MIME d’un message |
|
Teste si une extension SIEVE est disponible et effectue une action selon le résultat |
|
Permet la configuration des Flags IMAP et des mots clés dans les messages |
|
Permet l’inclusion d’un script SIEVE dans un autre |
|
Permet la correspondance de champs des entêtes basée sur la position du texte dans la chaîne (par exemple à partir du 5ème caractère) |
|
Vérifie qu’un répertoire spécifié existe |
|
Permet des tests sur des parties MIME spécifiques d’un message |
|
Permet l’utilisation d’expressions régulières |
|
Refuse la distribution d’un message |
|
Permet des comparaisons relationnelles de parties d’un message |
|
Permet de tester des sous-parties d’une sous-adresse |
|
Permet les emails en réponse automatique |
|
Ajoute le support des variables |
Vous pouvez utiliser sieve pour implémenter et appliquer des règles stratégiques d’organisations du côté serveur. Créer un fichier global des règles sieve, dossier : /var/lib/dovecot/sieve/ et le fichier : default.sieve
sudo mkdir /var/lib/dovecot/sieve/
Créez et ouvrez ensuite le fichier des règles globales de sieve :
sudo nano /var/lib/dovecot/sieve/default.sieve
Les règles de l’exemple déplacent automatiquement les e-mails “spams” signalés par spamassassin et amavis par le drapeau X-Spam-Flag , l’un des dossiers suivants “Pourriel“, ou “Junk“, ou “Spam“.
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; }
Sauvegarder le fichier en suite changer le propriétaire :
sudo chown -R vmail:vmail /var/lib/dovecot
Compiler les règles de sieve :
sudo sievec /var/lib/dovecot/sieve/default.sieve
Activation du plugin de sieve dans roundcube
Roundcube utilise deux plugins pour sieve: managesieve sieverules, et les deux fournissent des fonctionnalités similaires, mais j’aime la prise en charge étendue pour les en-têtes de courrier dans l’interface utilisateur fournis par sieverules. Donc, nous allons utiliser le plugin sieverules.
Activer le plugin sieverules dans roundcube config. Editez le fichier /etc/roundcube/main.inc.php
sudo nano /etc/roundcube/main.inc.php
Ajouter sieverules à la liste des plugins roundcube
$rcmail_config['plugins'] = array( ..., 'sieverules');
Configurer le plugin sieverules pour utiliser le port 4190 utilisé par service managesieve.
sudo nano /etc/roundcube/plugins/sieverules/config.inc.php
Ajoutez ou mettez à jour la ligne suivante :
$rcmail_config['sieverules_port'] = 4190;
Merci de votez pour cet article :