[Chicago-talk] emailing from perl

Jay Strauss me at heyjay.com
Wed Aug 1 21:24:41 PDT 2007


Hi,

I'm trying to use this program called "websec".  Its sort of a poor
man's RSS.  Its supposed to look at a webpage and notice if its
changed, and if so, email the updated page.

I can't get the emailing to work on my machine.  I snipped out the
code in the program that does the emailing (below).  I don't get how
the email would be sent.  Doesn't there need to be some sort of email
client setup to send this to an SMTP server or something?

# Mail HTML document.
# Params: filename, subject, recipient
# Returns: none
sub MailDocument() {
    my $filename   = shift (@_);
    my $subject    = shift (@_);
    my @recipients = split /,/, shift (@_);
    my $from       = shift (@_);
    my $tmpstr     = $/;

    undef $/;
    open( FILE, "$filename" ) or die "Cannot open $filename: $!\n";
    my $content = <FILE>;
    close(FILE);

    foreach $email (@recipients) {
        $req = HTTP::Request->new( POST => "mailto:" . $email );
        if ( $from ne "" ) {
            $req->header( "From",   $from );
            $req->header( "Sender", $from );
        }
        $req->header( "Subject",                   $subject );
        $req->header( "Content-type",              "text/html" );
        $req->header( "Content-Transfer-Encoding", "7bit" );
        $req->header( "MIME-Version",              "1.0" );
        $req->content($content);

        $ua = new LWP::UserAgent;
        my $resp = $ua->request($req);
        die "Error mailing document: ".$resp->message()."\n" if $resp->is_error;
    }

    $/ = $tmpstr;
}


More information about the Chicago-talk mailing list