O.K, here's the code, what I am looking for is to be able to associated qid to from,to field of messages with deffered status.
#!/usr/bin/perl
use Data::Dumper;
open (Q,"-|" , "cat mailqout" );
my $ref_tomailq= [];
my $coutner = 0;
my $temp_qid;
while(<Q>) {
# Ignore the banners and totals
next if m{ ^ ( -----Q-ID----- | \s* / \S+ / | \s+ Total \s req
+uests: | \ S+ \s+ Queue \s+ status ) }ix;
# Ignore any completed jobs
next if m{ ^ .{10,20} \s \(job \s completed\) }x;
if( m{ ^\w+ }ix ) {
my @ar_line = split(/\s+/,$_);
my $num_char = length($ar_line[0]);
if ( $num_char > "0") {
print "$ar_line[$counter] $ar_line[-1]";
$ref_tomailq->[$counter]->{$ar_line[0]}->{"fro
+m"} = $ar_line[-1];
$temp_qid = $ar_line[0];
$counter++;
}
} else {
my @ar_line = split(/\s+/, $_);
if ($ar_line[1] =~ /Deffered:/) {
next;
} elsif ($ar_line[1] =~ /<{1}\w+>?/) {
#my @ar_email = split(/\s+/, $_);
chomp(@ar_line);
print "@ar_line\n";
$ref_tomailq->[$counter-1]->{$temp_qid}->{"to"
+} = $ar_line[1]
}
}
}
print Dumper($ref_tomailq);
output of dumper:
$VAR1 = [
{
'k4NDsM423484' => {
'to' => '<distribution@abc.com>',
'from' => '<support@abc.com>'
}
}
];
This is fined if there is only one recipient, but does not work well with multiple recipient. How can I it in this format?:
$VAR1 = [
{
'k4NDsM423484' => {
'to' => {'<distribution@abc.com>','noc
+@abc.com' }
'from' => '<support@abc.com>'
}
}
];
or
$VAR1 = [
{
'k4NDsM423484' => {
'to' => ['<distribution@abc.com>','noc
+@abc.com' ]
'from' => '<support@abc.com>'
}
}
];
Any idea thanks. |