tuto:ipasserelle:mail:qmail_heure_remise

Heures de remise des mails dans les journaux de Qmail

Lors d'envois en masse, il peut être nécessaire de savoir vers quelle(s) addresse(s) notre email a été remis, et à quelle heure. Voilà un petit script qui permet de faire ça (attention, ce script considère qu'il s'agit d'une instance de qmail peu utilisée, sans envois en parallèle vers des adresses identiques)

parse_qmail.pl
#!/usr/bin/env perl -w
 
use strict;
use warnings;
 
my @addr = qw(
 
adresse1@foo.fr
adresse2@bar.com
adresse3@baz.org
 
);
 
my %del = ();
 
open(FILE, "qmail_log.txt") or die "Couldn't open qmail_log.txt";
my @lines = <FILE>;
close FILE;
 
ADDR: foreach my $dst (@addr){
  L1: foreach my $l (@lines){
    if ($l =~ m/starting delivery (\d+): msg \d+ to remote $dst/){
      my $delivery = $1;
      L2: foreach my $l2 (@lines){
        if ($l2 =~ m/^(2016-09-2[01] \d+:\d+:\d+)\.\d+ delivery $delivery: success/){
          $del{$dst} = $1;
          next ADDR;
        }
      }
    }
  }
}
foreach (@addr){
  my $time = $del{$_} || 'non remis';
  print '| ' . $_ . ' | ' . $time . " |\n";
}
  • tuto/ipasserelle/mail/qmail_heure_remise.txt
  • Dernière modification: 29/10/2019 17:32
  • de dani