Modoboa 2.12.0 est disponible
26 octobre 2026 — Antoine Nguyen
Avant la mise à jour : séparateur de hiérarchie IMAP
Le partage de dossiers impose à Dovecot d'utiliser / comme séparateur de hiérarchie IMAP : les dossiers partagés apparaissent sous la forme shared/<adresse du propriétaire>/<dossier>, et les adresses contiennent des points. Les installations existantes utilisent ., le changement n'est donc pas automatique : l'installeur conserve enable_sharing = false dans la section [dovecot] lorsqu'il met à jour un fichier de configuration existant.
Si vous souhaitez activer le partage, les dossiers ne sont pas renommés sur le disque, mais les noms de dossiers enregistrés dans les filtres Sieve et dans les paramètres du webmail doivent être convertis. La nouvelle commande migrate_imap_separator s'en charge (#4319, #4343) :
- sauvegardez tout, puis listez ce qui sera converti avec --dry-run
- passez Dovecot à / : avec l'installeur, définissez enable_sharing = true et lancez-le en mode mise à jour ; sinon ajoutez separator = / au namespace inbox et rechargez Dovecot
- juste après, lancez la commande pour de bon (elle peut être relancée sans risque si elle signale des erreurs)
python manage.py migrate_imap_separator --dry-run
# switch Dovecot to '/', then:
python manage.py migrate_imap_separator
Entre les deux étapes, les filtres ne trouvent plus leurs dossiers cibles : les messages sont distribués dans la boîte de réception, rien n'est perdu. La commande a besoin de doveadm (lancez-la sur le serveur de messagerie ou utilisez l'API HTTP de doveadm), ne convertit que les commandes fileinto, et les noms de dossiers ne peuvent plus contenir de .. Le guide de mise à jour donne tous les détails.
Webmail
- Partage de dossiers : les utilisateurs peuvent partager leurs dossiers avec d'autres comptes, grâce aux ACL IMAP (#4321, #4322). Les dossiers partagés sont suivis et leurs ACL nettoyées lors de la suppression ou du renommage d'un compte (#4320)
- Formulaire de rédaction : les pièces jointes sont gérées dans le formulaire (#4277), la saisie des destinataires est améliorée (#4278), les brouillons sont enregistrés automatiquement et un avertissement s'affiche avant de quitter le formulaire (#4279)
- Annulation d'envoi : un message peut être rappelé juste après avoir cliqué sur envoyer (#4285)
- Conversations : répondez directement depuis la vue en conversation (#4289)
- Corrections : les messages programmés sont correctement supprimés et un message annulé n'est plus perdu (#4288), les listes de dossiers utilisent le délimiteur de hiérarchie IMAP du serveur (#4302), et un attribut style contenant plusieurs URL ne casse plus l'affichage du message (#4332)
Tableau de bord
Le tableau de bord des administrateurs est repensé (#4335), et les revendeurs et administrateurs de domaine ont désormais eux aussi des statistiques.
- Nouveaux widgets trafic, activité et système, avec des statistiques pour les revendeurs et les administrateurs de domaine (#4337)
- Les widgets se chargent indépendamment, avec des états de chargement et d'erreur : un widget lent ne bloque plus toute la page (#4336)
- Le widget d'actualités met en avant les articles récents (#4333)
Calendriers
- Flux externes : les utilisateurs peuvent s'abonner à des flux iCalendar externes (#4328)
- Événements récurrents : ils peuvent désormais être créés et modifiés (#4329)
Contacts
La synchronisation CardDAV a été profondément revue :
- La synchronisation est limitée au carnet d'adresses de l'utilisateur (#4304), le client CardDAV et l'API des contacts sont renforcés (#4305), et le nom de la ressource est suivi avec une correspondance vCard complète (#4306)
- Le carnet d'adresses est envoyé vers CardDAV dans une tâche en arrière-plan (#4309), la synchronisation se rétablit après une erreur (#4310) et peut de nouveau être activée (#4311)
- Moins de requêtes HTTP et SQL pendant la synchronisation (#4315)
- Interface : les contacts sont affichés et recherchés par nom d'affichage (#4316), le numéro de page est réinitialisé au changement de catégorie (#4317), et les valeurs trop longues sont tronquées lors de l'import d'un fichier CSV (#4314). Nettoyage dans #4313
Filtres Sieve
- Un jeu de filtres existant n'est plus écrasé (#4291)
- De vraies erreurs sont renvoyées au lieu d'erreurs 500 (#4292), et l'interface gère correctement les erreurs de l'API et l'encodage des URL (#4298)
- Le client Sieve est plus robuste (#4293), et les namespaces sont chargés avant de lister les boîtes pour les modèles d'actions (#4287)
Administration
- Contrôles d'accès : la recherche de comptes est restreinte au périmètre de l'utilisateur et la bonne permission est vérifiée sur les actions POST (#4340)
- Plugins : les plugins peuvent étendre les sérialiseurs et les pages des comptes (#4323, #4325) et ajouter des badges aux comptes, avec un filtre par badge dans la liste (#4326). Les boîtes partagées de Modoboa Pro sont présentées dans l'interface (#4327)
- Configuration automatique : elle fonctionne avec Thunderbird Android (#4330), et la prise en charge des variables de Thunderbird dans AutoDiscover/MobileConfig est de nouveau corrigée (#4101)
- Corrections : renommage de compte et création de la boîte lors d'une mise à jour (#4303), une opération en attente sur une boîte est conservée quand le maildir est illisible plutôt qu'absent (#4294), un répertoire RRD manquant est détecté avant les tâches de statistiques (#4284), et la couleur de fond provient du thème (#4339)
Dépendances, traductions et développement
- Dépendances : Django 5.2.18 (#4281), django-otp 1.7.5 (#4282, #4312), django-reversion 6.4.0 (#4307), caldav 3.6.0 (#4296, #4308, #4344), et sievelib 1.6.0 est requis (#4290)
- Traductions : le français et le japonais sont mis à jour (#4295, #4324, #4341, #4342)
- Développement : les ACL IMAP et le namespace partagé sont activés dans le Dovecot de développement (#4318), du code mort et la copie embarquée de rfc6266 sont supprimés (#4299, #4300), et le filtre par statut des alarmes est couvert par des tests (#4338)
Merci
Bienvenue à nos nouveaux contributeurs mvanhorn, feafel et annejan, et merci à ntninja pour la correction de la configuration automatique de Thunderbird !
Mise à jour
Après les étapes propres à cette version décrites plus haut :
pip install -U modoboa
cd <modoboa_instance_dir>
python manage.py migrate
python manage.py collectstatic
python manage.py check --deploy
python manage.py load_initial_data
sudo systemctl restart uwsgi supervisor
Changelog complet : 2.11.1...2.12.0