Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/trollinou/eg-mail/archive/refs/heads/main.zipEG Mail — Régulation SMTP & Gestion de Lots pour WordPress
EG Mail est une extension WordPress conçue pour agir comme un middleware d'interception transparent de la fonction native wp_mail(). Elle assure la régulation de flux SMTP multi-niveaux, l'ordonnancement par priorités (avec routage nocturne) et offre une interface d'administration par lots permettant d'interrompre ou d'annuler instantanément des campagnes en cours de diffusion.
Fonctionnalités Principales
-
Interception Transparente (
wp_mail) :- Fonctionne sans modification du code des plugins tiers appelants.
- Capture de l'ensemble du contexte WordPress (
content_type,charset,from_email,from_name). - Mode bypass immédiat pour les messages critiques (2FA, réinitialisation de mot de passe).
-
Régulation de Flux Multi-Niveaux (Rate Limiting) :
- Quota par minute différencié Jour / Nuit.
- Quota glissant optionnel par heure (sur les 60 dernières minutes).
- Marge de sécurité dédiée aux e-mails critiques.
-
Ordonnancement & Plage Nocturne :
- Gestion de 4 priorités (
Bypass,Critique,Normale,Basse/Nuit). - Report automatique des envois de masse sur la fenêtre nocturne configurée (ex: 22h00 – 06h00).
- Coupe-circuit de débordement au lever du jour si les quotas horaires bloquent la file.
- Gestion de 4 priorités (
-
Gestion de Campagnes & Annulation en Direct (
batch_id) :- Regroupement automatique des envois massifs par campagne.
- Boutons d'action immédiate : Pause, Reprise, Reprogrammation (date/heure et priorité), Annuler et purger.
- Coupe-circuit intra-boucle dans le Worker pour stopper net un lot à la seconde près.
-
Déduplication des Pièces Jointes & Résilience (PRA) :
- Spool sécurisé avec déduplication par empreinte MD5.
- Snapshot miroir JSON sur disque (
queue-snapshot.json) pour restauration automatique. - Déclaration native auprès de l'extension EG Backup & Restore.
Prérequis Techniques
- PHP :
8.4minimum (declare(strict_types=1);requis). - WordPress :
7.1minimum. - Node.js :
24 LTS(uniquement pour l'outillage de build et les tests frontend). - Composer :
2.x(outillage d'assurance qualité en développement).
Commandes de Développement & Assurance Qualité (QA)
Toute modification doit être validée sans aucune erreur ni avertissement :
# 1. Analyse statique stricte (PHPStan Level 8)
composer phpstan
# 2. Correction automatique du style de code
composer phpcbf
# 3. Validation des standards de code WordPress (WPCS)
composer phpcs
# 4. Vérification du typage TypeScript
npm run typecheck
# 5. Linting JavaScript / TypeScript (ESLint 9)
npm run lint
# 6. Tests unitaires (PHPUnit 11)
composer test
# 7. Compilation des assets frontend
npm run build
# 8. Synchronisation et montée de version SemVer (ex: 1.1.0)
npm run version:sync -- 1.1.0
# 9. Création de l'archive ZIP autonome de production (avec validation QA intégrée)
npm run package
Documentation
- USING.md : Guide utilisateur pour les administrateurs (interface back-office, réglages de quotas, plage nocturne, suivi des campagnes et plan de reprise d'activité).
- DEVELOPER.md : Guide complet pour les développeurs (headers
X-Queue-*, niveaux de priorité, bypass immédiat, capture de contexte et exemples de code). - CHANGELOG.md : Historique des versions et évolutions.
Licence
Ce projet est distribué sous licence GNU General Public License v2 ou supérieure.