Forum Linux.redhat Sendmail / Supprimer les mails d'un expéditeur.

Posté par  .
Étiquettes : aucune
0
25
jan.
2008
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  . Évalué à 1.

    Je ne sais pas si c'est utils. Mais on peut utiliser thunderbird connecter au serveur par imap. Trier par utilisateur envoyer pour sélecttioner puis supprimer.
  • # script perl

    Posté par  . Évalué à 1.

    Bonsoir,

    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  . Évalué à 1.

      Merci Beaucoup !!!
      • [^] # Re: script perl

        Posté par  . Évalué à 1.

        Pas de souci. Je me suis un peu ré-exercé en perl !
        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.