HTML-EP
view release on metacpan or search on metacpan
examples/admin/mail2group view on Meta::CPAN
my $year = $3;
my $hour = $4;
my $min = $5;
my $sec = $6;
if (exists($MONTHS{lc $mon})) {
$mon = $MONTHS{lc $mon};
} else {
print STDERR ("Cannot parse received header from mail $i"
, " of user $user\n");
next;
}
$year -= 1900 if ($year > 99);
$time = Time::Local::timelocal($sec, $min, $hour, $mday, $mon,
$year);
}
if ($time + $config->{'mail2group'}->{'delay'} * 24 * 60 * 60
> time()) {
printf("Ignoring mail $i ($id) of user $user: $received\n")
if ($verbose);
next;
}
printf("Forwarding mail $i ($id) of user $user to $forward.\n")
if ($verbose);
$cache->{$id} = 1;
if ($debug) {
next;
}
$head->add('X-Forwarder', "mail2group ($user)");
$head->add('X-Mail2Group', "$user => $forward");
$msg->smtpsend('Host' => '127.0.0.1',
map { s/^\s+//; s/\s+$//; ('Bcc' => $_) }
split(/,/, $forward));
}
}
}
my @keys = grep { !$cache->{$_} } keys %$cache;
foreach my $key (@keys) {
if ($verbose) {
printf("Deleting ID $key from cache.\n");
}
delete $cache->{$key};
}
$config->{'mail2group'}->{'cache'} = $cache;
my $dump = Data::Dumper->new([$config], ['PREFS']);
$dump->Indent(1);
my $str = $dump->Dump();
my $fh = Symbol::gensym();
if ($verbose) {
print("Saving data:\n$str\n");
}
if (!$debug) {
if (!open($fh, ">$PREFS_FILE") || !(print $fh $str) ||
!close($fh)) {
die "Couldn't save data: $!";
}
my($login, $pass, $uid, $gid) = getpwnam($WWW_USER);
chown $uid, $gid, $PREFS_FILE;
}
( run in 1.094 second using v1.01-cache-2.11-cpan-71847e10f99 )