package Apache::LogMail;
# File: Apache/LogMail.pm

use strict;
use Apache::Constants qw(:common);

sub handler {
    my $r = shift;

    my $mailto = $r->dir_config('LogMailto');
    return DECLINED unless $mailto;

    my $filepattern = $r->dir_config('LogPattern');
    return DECLINED if $filepattern 
	&& $r->filename !~ /$filepattern/;

    my $request = $r->the_request;
    my $uri     = $r->uri;
    my $agent   = $r->header_in("User-agent");
    my $bytes   = $r->bytes_sent;
    my $remote  = $r->get_remote_host;
    my $status  = $r->status_line;
    my $date    = localtime;

    my $from = $r->server->server_admin || "webmaster";
    local $ENV{PATH}; #keep -T happy
    unless (open MAIL, "|/usr/lib/sendmail -oi -t") {
        $r->log_error("Couldn't open mail: $!");
        return DECLINED;
    }

    print MAIL <<END;
To: $mailto
From: mod_perl httpd <$from>
Subject: Somebody looked at $uri

At $date, a user at $remote looked at
$uri using the $agent browser.  

The request was $request, 
which resulted returned a code of $status.  

$bytes bytes were transferred.
END

    close MAIL;
    return OK;
}

1;
__END__
