MailHub — Gestionnaire SMTP & e-mails avancé

From Dolibarr ERP CRM Wiki
Revision as of 23:26, 21 July 2026 by TADIT (talk | contribs) (MailHub)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Module MailHub

MailHub est un module Dolibarr qui centralise et fiabilise l'ensemble des envois d'e-mails. Il intercepte les envois natifs de Dolibarr et les route vers le meilleur connecteur configuré (SMTP, OAuth2, API HTTPS), avec journalisation, connexion de secours automatique, file d'attente asynchrone, alertes multi-canaux et un centre de diagnostic complet. Il fonctionne sur tout hébergement, y compris mutualisé, là où les ports SMTP sont souvent bloqués.

Attribut Valeur
Nom du module MailHub
Éditeur TAD-IT & SERVICES (tadit-services.com)
Version 3.2.1
Numéro de module 340071
Compatibilité Dolibarr 16.0 → 21.x
PHP minimum 7.1
Licence GPL v3+
Famille Interfaçage externes
Dolistore Template:Dolistore

Aperçu

MailHub s'appuie sur les hooks natifs sendMail / sendMailAfter de la classe CMailFile : aucun cœur de Dolibarr n'est modifié. Chaque e-mail sortant est intercepté puis dirigé vers la connexion la plus adaptée en fonction de l'expéditeur et du contexte d'envoi (standard, emailing de masse, tickets, réinitialisation de mot de passe). En cas d'échec de la connexion principale, une connexion de secours prend automatiquement le relais.

Prérequis

  • Dolibarr 16.0 ou supérieur (testé jusqu'à la 21.x)
  • PHP 7.1 ou supérieur (extensions openssl, curl, mbstring)
  • Le module « Travaux planifiés » (cron) de Dolibarr pour la file asynchrone, la purge des journaux et le contrôle de santé
  • Un accès HTTPS sortant (pour les connecteurs API et OAuth)

Installation

  1. Aller dans Accueil → Configuration → Modules/Applications, onglet Déployer/installer un module externe.
  2. Sélectionner le fichier module_mailhub-3.2.1.zip et le déployer.
  3. Activer le module MailHub. Un menu principal « MailHub » apparaît.
  4. Activer le module Travaux planifiés de Dolibarr si ce n'est pas déjà fait.

Migration depuis l'ancien module SmtpAvance

À son activation, MailHub reprend automatiquement les données de l'ancien module smtpavance s'il est présent : les tables sont renommées sans perte (ids et secrets chiffrés préservés) et les constantes SMTPAVANCE_* sont recopiées en MAILHUB_*. Procédure recommandée : sauvegarder la base, installer et activer MailHub, vérifier les connexions, puis désactiver et supprimer l'ancien module.

Configuration

La configuration se fait depuis MailHub → Réglages :

  • Général : interception/routage, mode simulation, mode debug.
  • Envoi asynchrone : activation de la file d'attente et taille des lots traités par le cron.
  • Journaux : activation, stockage du corps, durée de rétention.
  • Alertes d'échec : e-mail, Slack, Discord, Pushover ; seuil d'auto-désactivation d'une connexion.
  • Signature DKIM : activation, domaine, sélecteur et clé privée (constantes cœur MAIN_MAIL_EMAIL_DKIM_*), pour les envois natifs.

Utilisation

Connexions

Depuis MailHub → Réglages → onglet Connexions → Nouvelle connexion, choisir un fournisseur, suivre les liens « Ouvrir la console » / « Doc API » pour récupérer les identifiants, saisir l'expéditeur, cocher « Par défaut », puis enregistrer. Pour un connecteur OAuth, cliquer sur « Connecter » pour autoriser l'accès ; pour les autres, cliquer sur « Tester la connectivité ». Un bloc « Test direct de cette connexion » en bas de la fiche permet d'envoyer un e-mail de test.

Journal des e-mails

Le journal liste tous les envois avec recherche et filtres, aperçu, renvoi unitaire et groupé, export CSV/JSON et purge automatique par lots selon la rétention configurée.

Centre de diagnostic

La page MailHub → Diagnostic vérifie l'environnement PHP, la configuration Dolibarr, les hooks/tables/cron, la connectivité réseau (scan des ports 25/465/587), et la délivrabilité DNS (SPF, DMARC, MX). Le rapport est exportable.

Permissions

MailHub expose 8 droits granulaires, chacun attribuable par utilisateur et par groupe depuis « Utilisateurs & Groupes → onglet Permissions » : Consultation, Diagnostic, Envoi de tests, Renvoi depuis les journaux, Gestion des connexions, Réglages, Suppression/purge des journaux, Export/Import des connexions. On peut ainsi créer un profil « opérateur » ou « gestionnaire d'e-mails » sans donner les droits de super-administrateur.

Fonctionnalités

  • Routage par expéditeur et par contexte d'envoi
  • Connexion de secours (fallback) automatique
  • File d'attente asynchrone (cron) : envoi non bloquant, verrou de concurrence atomique, reprise des envois interrompus, backoff exponentiel
  • Auto-désactivation d'une connexion après N échecs consécutifs, avec alerte
  • Journal complet : recherche, aperçu, renvoi unitaire et groupé, export CSV/JSON, purge automatique
  • Import/Export des connexions au format JSON (migration entre instances)
  • Alertes d'échec multi-canaux : e-mail, Slack, Discord, Pushover
  • Signature DKIM pour les envois natifs
  • Tableau de bord : statistiques, graphique sur 14 jours, ventilation par fournisseur, badges de santé (cron horaire)
  • Centre de diagnostic complet
  • Mode simulation ; secrets chiffrés au repos (AES) ; jetons CSRF ; tests réseau durcis contre le SSRF
  • 8 permissions granulaires par utilisateur et par groupe
  • Interface en 10 langues
  • Documentation et guides pas-à-pas par opérateur intégrés

Connecteurs supportés

Connecteur Type Remarques
SMTP SMTP Universel, avec préréglages (Gmail, Outlook 365, OVH, IONOS, o2switch, Yahoo, Zoho, Brevo, SES, Mailjet…)
PHP mail() Natif Dernier recours
Google Workspace OAuth2 API Gmail, sans port SMTP ni mot de passe stocké
Microsoft 365 OAuth2 API Microsoft Graph
Amazon SES API HTTPS Signature AWS V4
SendGrid API HTTPS
Mailgun API HTTPS
Brevo API HTTPS
Postmark API HTTPS
SparkPost API HTTPS Zone US ou EU
Elastic Email API HTTPS
SMTP2GO API HTTPS
Zoho ZeptoMail API HTTPS Zone com / eu / in
toSend API HTTPS

Tâches planifiées (cron)

Le module installe trois tâches planifiées :

  • MailHubPurgeOldLogs — purge des journaux au-delà de la rétention (quotidien).
  • MailHubProcessQueue — envoi des e-mails en file (toutes les 5 minutes, si le mode asynchrone est actif).
  • MailHubHealthCheck — contrôle de connectivité des connexions actives (horaire).

Sécurité

Les secrets (mots de passe SMTP, clés API, secrets OAuth) sont chiffrés au repos via le mécanisme de chiffrement de Dolibarr. Les actions sont protégées par jetons CSRF, les tests réseau sont durcis contre le SSRF (validation des adresses IP, blocage des plages privées/réservées et des adresses de metadata), et les en-têtes e-mail/MIME sont protégés contre l'injection. L'export/import des connexions (qui manipule des secrets déchiffrés) est réservé au droit dédié et journalisé.

Langues

Interface disponible en 10 langues, chacune couvrant l'intégralité des libellés : français, anglais, allemand, espagnol, italien, portugais, néerlandais, russe, chinois simplifié, japonais. La langue suit automatiquement le réglage de l'utilisateur Dolibarr.