Guide Joomla v1.0.0
MailGateway route tout le courrier sortant de Joomla vers un pool de passerelles SMTP et API : bascule automatique, disjoncteur et journal de chaque envoi.
Présentation
MailGateway route tout le courrier sortant de Joomla vers un pool de passerelles SMTP et API : bascule automatique, disjoncteur et journal de chaque envoi.
Prérequis
- Joomla 4.4, 5 ou 6 selon la version du paquet.
- PHP 8.1 ou version ultérieure recommandée.
- Une sauvegarde récente avant toute installation ou mise à jour.
Installation
- Téléchargez le paquet ZIP sans le décompresser.
- Dans Joomla, ouvrez Système → Installation → Extensions.
- Déposez le fichier ZIP dans la zone d’installation, puis attendez le message de confirmation.
- Ouvrez le composant depuis le menu Composants. Si le paquet contient un plugin, vérifiez son état dans Système → Gestion → Plugins.
- Contrôlez les autorisations du composant avant de l’ouvrir aux équipes.
Configuration initiale
- Ouvrez le tableau de bord de l’extension.
- Accédez aux Options pour définir les réglages globaux.
- Attribuez les droits Créer, Modifier, Supprimer et Administrer aux groupes concernés.
- Créez un premier élément de test et vérifiez son affichage côté site lorsqu’une vue publique est fournie.
- Activez les tâches planifiées ou plugins du paquet uniquement lorsqu’ils sont nécessaires.
Fonctionnalités
Interception complète
Le plugin remplace MailerFactoryInterface dans le conteneur d'injection de dépendances, réamorce Mail::getInstance() par réflexion pour les appelants hérités et rattrape les new Mail() sur l'événement onMailBeforeSend. Aucune extension tierce ne passe à côté.
8 transports opérationnels
SMTP classique et sept API HTTP : SendGrid, Mailgun, Postmark, Brevo, Mailjet, SparkPost et un webhook générique signé. Chaque transport traduit les codes du fournisseur en erreur transitoire ou définitive — c'est ce qui pilote la reprise.
5 stratégies de sélection
Bascule par priorité, tourniquet, pondération, aléatoire, ou routage par domaine destinataire qui enveloppe l'une des quatre autres. Le changement se fait à chaud, sans migration ni redémarrage.
Disjoncteur persistant
Cinq échecs en 60 secondes ouvrent le disjoncteur d'une passerelle. Après 300 secondes il passe en semi-ouvert ; un nouvel échec double le délai, jusqu'à un plafond d'une heure. L'état vit en base : il survit aux requêtes.
Journal en deux temps
La ligne de journal est ouverte au statut sending avant l'émission, puis refermée avec le détail des tentatives, l'identifiant renvoyé par le fournisseur et l'horodatage. Un transport qui se fige reste donc identifiable.
Renvoi et export EML
Renvoyez un message depuis son journal, à travers le pool ou en épinglant une passerelle précise. Exportez une ligne ou toute une sélection au format .eml. Le renvoi est plafonné à 10 actions par minute et par compte.
Installez le paquet
Le paquet déploie le composant et le plugin, crée les quatre tables InnoDB et fixe l'ordre du plugin à −200 pour qu'il s'exécute avant tout autre. Une première passerelle SMTP est même créée depuis vos réglages Joomla existants : le site continue d'envoyer sans intervention.
Déclarez vos passerelles
Un formulaire commun (titre, alias, type, état, priorité, poids) plus un jeu de champs propre à chaque fournisseur. Ajoutez vos règles de domaine, votre limite de débit et votre quota quotidien. Les identifiants sont chiffrés avant écriture.
Premiers usages
- Commencez avec un cas simple et des données non sensibles.
- Validez le résultat avec l’équipe qui utilisera l’extension.
- Documentez les choix propres au site : rôles, automatisations, modèles et intégrations.
- Déployez progressivement, puis surveillez les journaux et retours utilisateurs.
Captures d’écran


Dépannage
- L’extension n’apparaît pas après installation
- Vérifiez le message d’installation, l’état du composant et des plugins, puis videz le cache Joomla/WordPress.
- Une action est refusée
- Contrôlez les droits du groupe utilisateur, le jeton de session et les éventuelles restrictions de sécurité.
- Le rendu ne correspond pas au site
- Testez avec le cache désactivé, inspectez les substitutions de template et recherchez un conflit CSS ou JavaScript.
- Une intégration externe échoue
- Vérifiez l’URL, les identifiants, les quotas et les journaux sans copier de secret dans une demande d’assistance.
Mise à jour et désinstallation
Avant une mise à jour, sauvegardez les fichiers et la base de données, lisez les changements de version, puis testez sur une copie du site. Pour désinstaller, exportez d’abord les données utiles. La suppression d’un paquet peut retirer plusieurs composants, modules ou plugins associés.