60 lines
3.7 KiB
Markdown
60 lines
3.7 KiB
Markdown
|
# Automatisation de la Gestion des Messages Différés de Postfix avec un Script PHP
|
||
|
|
||
|
L'objectif du script PHP [delete_deferred.php](_files/postfix/home/cedrix/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
|
||
|
|
||
|
1. **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.
|
||
|
|
||
|
2. **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.
|
||
|
|
||
|
3. **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`.
|
||
|
|
||
|
4. **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.
|
||
|
|
||
|
5. **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.
|
||
|
|
||
|
6. **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
|
||
|
|
||
|
1. **Affichage de Début d'Exécution**
|
||
|
- Le script commence par afficher un message indiquant son démarrage.
|
||
|
|
||
|
2. **Définition des Chemins des Fichiers**
|
||
|
- Les variables `$logFile` et `$processedIdsFile` sont définies pour stocker les chemins vers les fichiers nécessaires.
|
||
|
|
||
|
3. **Fonctions de Lecture et Écriture**
|
||
|
- Deux fonctions, `readProcessedIds` et `writeProcessedIds`, 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`.
|
||
|
|
||
|
4. **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.
|
||
|
|
||
|
5. **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.
|
||
|
|
||
|
6. **Mise à Jour des IDs Traités**
|
||
|
- Le fichier des IDs traités est mis à jour avec les nouveaux IDs après le traitement.
|
||
|
|
||
|
7. **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`
|