if ($toaddress =~ /(\S+)[@]yourdomain|yourotherdomain/) {
$user = $1;
} else {
warn "Unknown user: $toaddress\n";
$user = 'postmaster'; # Or whoever should get slop.
}
####
# This is untested.
@users = map {
/^(\S+)[@]/ ? $1 : undef
} grep {
/(yourdomain|yourotherdomain|yourthirddomain)$/
} map {
s/\".*?\"//g;
(/[<](\S+?)[>]/) ? $1 : undef
} map {
split /,\s*/, $_
} $headers =~ m/^(?:To|Cc)[:]\s*(.*?)$/mig;
if (not @users) {
warn "No users.\n";
@users = ('postmaster');
}
####
my $filename = "attachment"; {
my ($y, $m, $d) = (localtime)[5,4,3];
$y += 1900; $m += 1;
$filename = join "-", $filename, $y, $m, $d;
}
# I assume $user and $ext are already set to the
# username and the filetype extension respectively.
while (-e "/home/$user/$filename.$ext") {
$filename .= ('a'..'z')[rand 26];
# It is possible to be more elegant than this.
}
open FILEHANDLE, ">/home/$user/$filename.$ext";
binmode FILEHANDLE; # Probably not necessary on *nix.
print FILEHANDLE $content;
close FILEHANDLE;
####
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/