Grâce à une mauvaise configuration, j'ai beaucoup d'e-mails dans / var / mail / root et / var / mail / www-data
Comment puis-je "boucler" sur ces fichiers et envoyer chaque courrier une autre fois?
formail , une partie de procmail (et probablement déjà disponible sur votre système) peut prendre une boîte aux lettres, la diviser en messages, puis exécuter une commande sur chacun. Depuis la page de manuel:
-s The input will be split up into separate mail messages, and piped
into a program one by one (a new program is started for every
part). -s has to be the last option specified, the first argument
following it is expected to be the name of a program, any other
arguments will be passed along to it. If you omit the program,
then formail will simply concatenate the split mails on stdout
again. See FILENO.
Vous pouvez donc faire ce que je pense que vous voulez comme ceci:
formail -s /usr/sbin/sendmail -oi -t < /var/mail/root
ls /var/mail
; do formail -s / usr / sbin / sendmail -oi $ foo <./$foo; done" devrait boucler chaque fichier et livrer localement.Puis dans mutt ...
T le met en mode de balisage et. * Marque tous les messages. Le point-virgule applique la commande suivante à tous les messages balisés, et enfin b "renvoie" les messages à une adresse qu'il demandera.
De mémoire, je pense que soit
ou
Videra ensuite la boîte aux lettres.
la source
Les fichiers de boîte aux lettres / var / spool / mail / xxx unix sont de simples fichiers texte dans lesquels les messages électroniques sont conservés dans l'ordre. Chaque message électronique commence par une ligne "De" (taht ne fait pas partie du message) avec l'expéditeur et la date de réception, puis vous obtenez des en-têtes de courrier, puis un corps de courrier.
Fondamentalement, vous pouvez simplement boucler sur le fichier détectant ces lignes From et extraire tous les messages, puis les envoyer en utilisant des outils comme le module smtp python ou le module perl Net :: SMTP de cpan.
Si la cible est une autre boîte aux lettres locale, vous pouvez simplement y ajouter les messages (y compris la ligne De). Vous pouvez même ajouter la boîte aux lettres racine entière à une autre boîte aux lettres si vous ne vous souciez pas non plus d'obtenir des messages vraiment ciblés sur la racine.
Je devrais avoir des scripts qui font ça et publier des exemples si vous voulez.
Le problème peut être d'obtenir la véritable cible du message, car s'ils se terminaient dans la boîte aux lettres racine, ils étaient probablement ciblés pour rooter depuis le début?
la source