Thunderbird : partager ses filtres de messages sur tous ses comptes avec un lien symbolique

4 avril 2026 · 4 min de lecture

Quand on gère une vingtaine de comptes mail dans Thunderbird — comptes perso, pro, clients, domaines OVH — on finit vite par crouler sous le spam. Le réflexe : créer des filtres. Sauf que Thunderbird stocke ses filtres par compte. Résultat, il faut recréer les mêmes règles sur chaque compte, ou accepter que seul le compte principal soit protégé.

Il existe une solution simple et élégante sous Linux : les liens symboliques . Un seul fichier de règles, partagé par tous les comptes.

Comment Thunderbird stocke ses filtres

Chaque compte IMAP dans Thunderbird possède son propre dossier dans le profil utilisateur :

~/.thunderbird/<profil>/ImapMail/
├── imap.gmail.com/
├── imap.gmail-1.com/
├── imap.gmail-2.com/
├── ssl0.ovh.net/
├── ssl0.ovh-1.net/
└── ...

Les règles de filtrage sont stockées dans un fichier msgFilterRules.dat à la racine de chaque dossier de compte. C’est un fichier texte lisible qui ressemble à ça :

version="9"
logging="no"
name="SPAM"
enabled="yes"
type="17"
action="Mark read"
action="Move to folder"
actionValue="mailbox://nobody@Local%20Folders/Junk"
condition="OR (from,contains,phishing.com) OR (subject,contains,Bitcoin)"

Chaque bloc name/enabled/type/action/condition définit un filtre. Le format est propriétaire mais stable — la documentation Thunderbird détaille les options disponibles.

Le problème

Avec 20 comptes, on se retrouve avec 20 fichiers msgFilterRules.dat à maintenir. En pratique, on n’en maintient qu’un seul (celui du compte principal) et les autres restent vides ou obsolètes. Chaque mail de phishing qui passe sur un compte secondaire rappelle le problème.

L’idée est de désigner un compte comme référence et de remplacer les fichiers msgFilterRules.dat des autres comptes par des liens symboliques pointant vers celui-ci.

Étape 1 — Identifier le profil et le compte de référence

# Trouver le profil actif
ls ~/.thunderbird/

# Le dossier qui contient vos mails
ls ~/.thunderbird/<profil>/ImapMail/

Choisissez le compte qui contient déjà vos filtres. Dans mon cas, c’est ssl0.ovh.net.

Étape 2 — Fermer Thunderbird

Les filtres sont chargés en mémoire au démarrage. Toute modification doit se faire Thunderbird fermé, sinon les changements seront écrasés à la fermeture.

Étape 3 — Créer les liens symboliques

PROFILE="$HOME/.thunderbird/<votre-profil>/ImapMail"
SOURCE="$PROFILE/ssl0.ovh.net/msgFilterRules.dat"

for dir in "$PROFILE"/*/; do
  account=$(basename "$dir")

  # Ne pas toucher au compte source
  if [ "$account" = "ssl0.ovh.net" ]; then
    continue
  fi

  target="$dir/msgFilterRules.dat"

  # Sauvegarder l'ancien fichier s'il existe et n'est pas vide
  if [ -f "$target" ] && [ ! -L "$target" ] && [ -s "$target" ]; then
    cp "$target" "$target.bak"
    echo "Backup: $account/msgFilterRules.dat.bak"
  fi

  # Supprimer l'ancien fichier ou symlink
  rm -f "$target"

  # Créer le symlink
  ln -s "$SOURCE" "$target"
  echo "Symlink: $account -> ssl0.ovh.net"
done

Étape 4 — Vérifier

for dir in "$PROFILE"/*/; do
  name=$(basename "$dir")
  f="$dir/msgFilterRules.dat"
  if [ -L "$f" ]; then
    echo "$name: symlink OK"
  elif [ -f "$f" ]; then
    echo "$name: fichier local ($(stat --printf='%s' "$f") octets)"
  else
    echo "$name: MANQUANT"
  fi
done

Relancez Thunderbird. Chaque compte affichera désormais les mêmes filtres dans Outils > Filtres de messages.

Sauvegarder son profil Thunderbird

Les filtres ne sont qu’une partie du profil Thunderbird . Pour ne rien perdre lors d’une réinstallation, il suffit de copier l’intégralité du dossier ~/.thunderbird/ — il contient les comptes configurés, les mails locaux, les filtres, les extensions et les préférences.

# Fermer Thunderbird avant la sauvegarde
tar czf thunderbird-backup-$(date +%Y%m%d).tar.gz -C "$HOME" .thunderbird/

Pour restaurer sur une nouvelle machine :

# Extraire le backup dans le home
tar xzf thunderbird-backup-*.tar.gz -C "$HOME"

Au premier lancement, Thunderbird retrouve l’ensemble de la configuration. Si le nom d’utilisateur a changé entre les deux machines, pensez à vérifier que les symlinks des filtres pointent vers le bon chemin (voir l’étape 4 ci-dessus).

Limites et alternatives

Cette approche a quelques limites :

  • Actions spécifiques à un compte — si un filtre déplace un mail vers un dossier IMAP spécifique (mailbox://nobody@imap.gmail.com/...), l’action échouera silencieusement sur les autres comptes. Préférez les actions génériques : Delete, Mark read, ou déplacement vers les Local Folders.
  • Comptes avec filtres différents — si un compte nécessite des règles spécifiques, ne créez pas le symlink pour celui-ci et gardez un fichier indépendant.
  • macOS / Windows — le principe fonctionne aussi (symlinks sous macOS, jonctions ou symlinks sous Windows), mais les chemins et commandes diffèrent.

Pour les filtres Gmail, une alternative est de gérer les règles directement côté serveur via les filtres Gmail (Paramètres > Filtres et adresses bloquées). L’avantage : les filtres s’appliquent même sans Thunderbird ouvert. L’inconvénient : pas de centralisation possible entre Gmail et les autres fournisseurs.

En résumé

Un ln -s par compte et le problème est réglé. Les filtres sont maintenus à un seul endroit, appliqués partout, et survivent aux mises à jour de Thunderbird. La seule vigilance à avoir : vérifier les symlinks après une migration de profil ou un changement de répertoire home.

Cette approche illustre un principe plus large : les outils Unix classiques comme ln, find ou tar restent redoutablement efficaces pour automatiser la gestion de ses applications au quotidien. Si le sujet vous intéresse, mes autres articles sur le DevOps explorent des problématiques similaires.