3.7 KiB
Automatisation de la Gestion des Messages Différés de Postfix avec un Script PHP
L'objectif du script PHP delete_deferred.php est de gérer automatiquement les messages de courrier électronique en attente dans la file d'attente de Postfix, spécifiquement ceux avec un statut deferred
dans /var/log/mail.log
. Le script identifie ces messages, les supprime de la file d'attente et garde une trace des messages dans déjà traités /var/log/processed_ids_deferred.txt
pour éviter les traitements redondants.
Fonctionnalités Principales
-
Initialisation et Configuration
- Le script commence par définir les chemins vers le fichier de journal de Postfix et le fichier utilisé pour stocker les IDs des messages déjà traités.
-
Lecture des IDs Traités
- Une fonction lit les IDs des messages déjà traités à partir d'un fichier de suivi, assurant que les messages ne sont pas traités plusieurs fois.
-
Recherche des Messages Différés
- Utilise une expression régulière pour analyser le fichier de journal de Postfix et identifier les messages avec le statut
deferred
.
- Utilise une expression régulière pour analyser le fichier de journal de Postfix et identifier les messages avec le statut
-
Filtrage des Messages Non Traités
- Compare les IDs des messages trouvés dans le journal avec ceux déjà traités pour ne conserver que les nouveaux messages à traiter.
-
Suppression des Messages de la File d'Attente
- Pour chaque nouveau message identifié, le script exécute la commande
postsuper -d
pour supprimer le message de la file d'attente. - Si la suppression est réussie, l'ID du message est ajouté à la liste des IDs traités.
- Pour chaque nouveau message identifié, le script exécute la commande
-
Mise à Jour du Fichier des IDs Traités
- Après avoir traité les nouveaux messages, le script met à jour le fichier de suivi avec les nouveaux IDs, garantissant qu'ils ne seront pas traités à nouveau lors de la prochaine exécution.
Déroulement du Script
-
Affichage de Début d'Exécution
- Le script commence par afficher un message indiquant son démarrage.
-
Définition des Chemins des Fichiers
- Les variables
$logFile
et$processedIdsFile
sont définies pour stocker les chemins vers les fichiers nécessaires.
- Les variables
-
Fonctions de Lecture et Écriture
- Deux fonctions,
readProcessedIds
etwriteProcessedIds
, sont définies pour lire et écrire les IDs des messages traités. Le script utilise un fichier spécifique pour stocker les IDs des messages déjà traités. Ce fichier est situé à/var/log/processed_ids_deferred.txt
.
- Deux fonctions,
-
Lecture et Analyse du Journal
- Le fichier de journal de Postfix est lu, et les messages correspondant au statut
deferred
sont identifiés à l'aide d'une expression régulière.
- Le fichier de journal de Postfix est lu, et les messages correspondant au statut
-
Traitement des Messages
- Les IDs des messages différés sont extraits et filtrés pour ne conserver que ceux qui n'ont pas encore été traités.
- Pour chaque nouveau message, la commande
postsuper -d
est exécutée pour supprimer le message de la file d'attente. - Les IDs des messages réussis sont ajoutés à la liste des IDs traités.
-
Mise à Jour des IDs Traités
- Le fichier des IDs traités est mis à jour avec les nouveaux IDs après le traitement.
-
Affichage de Fin d'Exécution
- Le script affiche un message indiquant la fin de l'exécution.
Avantages du Script
- Automatisation : Réduit la nécessité d'intervention manuelle pour gérer les messages différés dans Postfix.
- Efficacité : Assure que les messages sont traités de manière efficace en évitant les traitements redondants.
- Traçabilité : Garde une trace des messages déjà traités, ce qui facilite le suivi et la gestion des opérations.
À consulter
postsuper