-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExim-cat
executable file
·50 lines (36 loc) · 931 Bytes
/
Exim-cat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl
use warnings;
use strict;
use FindBin;
use lib $FindBin::Bin;
use EximQueue;
my $dir = EximQueue->DEFAULT_QUEUE_DIR;
use Getopt::Long;
GetOptions(
"directory|d=s" => \$dir,
) or exit 2;
my $q = EximQueue->new($dir);
my $filter = EximQueueItem->compile_filter(join " ", @ARGV);
my $sub = sub {
my $p = shift;
$p->matches_filter($filter) or return;
my $peer = $p->get_sending_peer;
printf "X-Sending-Peer: %s (HELO=%s) (PTR=%s)\n",
$peer->{ip} || "local",
$peer->{helo} || "none",
$peer->{ptr} || "none",
;
printf "X-Mail-From: %s\n", $p->{sender} || "<>";
my $r = $p->{rcpt};
printf "X-Sent-Rcpt-To: %s\n", $_
for sort grep { $r->{$_} } keys %$r;
printf "X-Todo-Rcpt-To: %s\n", $_
for sort grep { not $r->{$_} } keys %$r;
print $_, "\n" for @{ $p->{headers} };
print "\n";
my $fh = $p->{body_fh};
while (<$fh>) { print }
print "\n", "#" x 80, "\n\n";
};
$q->scan($sub);
# eof