Bonjour,
Un utilisateur a reçu des milliers de mails d'un même expéditeur.
Je ne sais comment faire pour supprimer d'un coup tous les mails envoyés par X à l'utilisateur Y ?
Possible via Webmin ? Ou en tapant une commande via SSH qui édite le fichier mail de Y (dans var/spool/mail) ?
Que de mystères pour moi...
# Par Imap
Posté par Ngoc-Khoi TO . Évalué à 1.
# script perl
Posté par stillbsd . Évalué à 1.
Ce script perl semble marcher.
Tu le mets dans un fichier menage.pl, avec les droits d'execution.
Tu lui passes en 1er argument le chemin complet au fichier (/var/spool/mail/<login>) et en second l'adresse SMTP de l'adresse d'émission (grosSPAM@spam.com par exemple).
La sortie standard représente le résultat.
Donc on l'utilise ainsi :
cp /var/spool/mail/toto /var/spool/mail/toto.SAVED
./menage.pl /var/spool/mail/toto.SAVED grosSPAM@spam.com > toto
#!/usr/bin/perl
use strict;
my $monflagokprint=1;
my $prevligne='';
my $fichiersrc=$ARGV[0];
open(F, "$fichiersrc");
my $monuserpasok=$ARGV[1];
while (<F>)
{
# printf "nouvelle ligne dans la boucle\n";
# print "prevligne=|$prevligne|\n";
# on etait dans le corps d'un mail non souhaite
if ($monflagokprint == 0)
{
if (($prevligne eq "") && (/^From [a-zA-Z]/) && ($_ !~ /^From $monuserpasok /))
{
$monflagokprint=1;
# printf "on passe du corps dun mail non souhaite a souhaite |%s|\n",$_;
}
}
else
{
# Recherche de la ligne from du mail a virer
if (($prevligne eq '') && (/^From $monuserpasok /))
{
$monflagokprint=0;
# printf "on passe du corps dun mail souhaite a non souhaite |%s|\n",$_;
}
}
print if ($monflagokprint == 1);
chomp($prevligne=$_);
}
close(F);
[^] # Re: script perl
Posté par berhu3 . Évalué à 1.
[^] # Re: script perl
Posté par stillbsd . Évalué à 1.
Au fait, l'as tu utilisé ? Est-ce qu'il a fait le ménage correctement ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.