1 |
dpavlin |
1.1 |
#!/usr/bin/perl -w |
2 |
|
|
# |
3 |
|
|
# 2003-04-09 Dobrica Pavlinusic <dpavlin@pliva.hr> |
4 |
|
|
# |
5 |
|
|
# take a directory of inboxes and re-mail them through sendmail |
6 |
|
|
# (to check for viruses, expand aliases/forwards etc etc) |
7 |
|
|
# |
8 |
|
|
|
9 |
|
|
$|=1; |
10 |
|
|
|
11 |
|
|
#my @dir = ( '/var/mail' ); |
12 |
|
|
my @dir = ( '/home/dpavlin/x/mail' ); |
13 |
|
|
|
14 |
|
|
#my $sendmail = "| cat >> /tmp/sendmail"; |
15 |
|
|
my $sendmail = "| /usr/sbin/sendmail -t"; |
16 |
|
|
|
17 |
|
|
use File::Find; |
18 |
|
|
find(\&remail, @dir); |
19 |
|
|
sub remail { |
20 |
|
|
return if (! -r $_ || -z $_ || m/^\./); |
21 |
|
|
my $inbox = $_; |
22 |
|
|
print "inbox: $_ "; |
23 |
|
|
open(INBOX,$_) || warn "can't open inbox $_: $!"; |
24 |
|
|
|
25 |
|
|
my $mails = 0; |
26 |
|
|
|
27 |
|
|
open(SENDMAIL, $sendmail) || die "sendmail: $!"; |
28 |
|
|
while(<INBOX>) { |
29 |
|
|
if (/^From /) { |
30 |
|
|
close(SENDMAIL); |
31 |
|
|
open(SENDMAIL, $sendmail) || die "sendmail: $!"; |
32 |
|
|
$mails++; |
33 |
|
|
print "."; |
34 |
|
|
} |
35 |
|
|
print SENDMAIL $_; |
36 |
|
|
} |
37 |
|
|
close(SENDMAIL); |
38 |
|
|
|
39 |
|
|
print " $mails mails\n"; |
40 |
|
|
} |
41 |
|
|
|