Filtrage de courrier via sieve sur ubuntu

(Dernière mise à jour le: 24 septembre 2022)

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.

body

Vérifie la présence d’une ou plusieurs chaines de caractères dans le corps du message

comparator-i;ascii-numeric

Extraits les chiffres d’un texte et les compare pour voir s’il y a concordance

copy

Spécifie qu’une copie d’un email doit être utilisée pour effectuer une action (comme transférer ou déplacer)

date

Permet d’effectuer une action basé sur la date ou l’heure de réception ou d’envoi d’un email

duplicate

Teste si l’email est un doublon

encoded-character

Permet l’encodage de caractères spéciaux numériquement

envelope

Permet de tester de parties de l’enveloppe, comme l’adresse « Pour : » ou « De: »

extracttex

A utiliser avec « foreverypart », extrait une partie spécifique du texte et l’utilise comme une variable

fileinto

Distribue le message dans un répertoire spécifique

foreverypart

Permet d’effectuer des commandes sur chaque partie MIME d’un message

ihave

Teste si une extension SIEVE est disponible et effectue une action selon le résultat

imap4flags

Permet la configuration des Flags IMAP et des mots clés dans les messages

include

Permet l’inclusion d’un script SIEVE dans un autre

index

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)

mailbox

Vérifie qu’un répertoire spécifié existe

mime

Permet des tests sur des parties MIME spécifiques d’un message

regex

Permet l’utilisation d’expressions régulières

reject

Refuse la distribution d’un message

relational

Permet des comparaisons relationnelles de parties d’un message

subaddress

Permet de tester des sous-parties d’une sous-adresse

vacation

Permet les emails en réponse automatique

variables

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;

FaiblePa malMoyenIntéressantExilent (4 votes, average: 5,00 out of 5)
Loading...

Laisser un commentaire

Translate »