Page précédente Page suivante Table des matières

6. Annexe 1 : suppression d'un message dans la file d'attente

Voici un petit script en Perl permettant de supprimer un message en attente dans la file. Il est imparfait car il ne gère pas les CC:.

#! /usr/bin/perl -w

# killmail :
#           usage : killmail id-mail
# 
# supprime de la file d'attente de sendmail le message identifie par
# id-mail tel qu'il est affiche par la commande mailq
#
#
# TODO : gerer le probleme de la suppression des messages avec CC pour
#        ne supprimer qu'un message parmi plusieurs.
#
     
use strict;
use English;

my $SPOOL = "/var/spool/mqueue"; # file d'attente

if ($EFFECTIVE_USER_ID != (getpwnam("root"))[2])
{
   print <STDERR>, "Vous devez etre root pour executer cette commande...\n";
   exit(3);
}
 
if (!defined($ARGV[0])) {
    print <STDERR>, "Usage : killmail id-mail  (voir mailq)\n";
    exit(1);
}

my $df = "$SPOOL/df$ARGV[0]";
my $qf = "$SPOOL/qf$ARGV[0]";  

print ("Etes-vous sur de vouloir supprimer le message $ARGV[0] ? (o/n) : ");

if (<STDIN> =~ /[Oo]/) {  # oui...
  unlink($df, $qf);
  exit(0);
}
else 
{
  print <STDERR>, "Suppression de $ARGV[0] annulee par l'utilisateur\n";
  exit(2);
}


Page précédente Page suivante Table des matières