#!/usr/bin/perl use LWP::UserAgent ; use Mail::Mailer ; use MIME::Parser; use MIME::QuotedPrint; use HTML::Entities ; $decoder = new MIME::Decoder 'quoted-printable' or die "unsupported"; ### Create parser, and set some parsing options: my $parser = new MIME::Parser; $parser->output_to_core(1); ## keep messages in memory $parser->decode_headers(1); ### default is false $parser->extract_nested_messages(1) ; ### Parse input: $entity = $parser->parse(\*STDIN) or die "parse failed\n"; $header = $entity->head ; $subject = $header->get('Subject',0) ; $from = $header->get('From',0) ; $to = $header->get('To',0) ; # $body = decode_qp($entity->parts(0)->body_as_string) ; # $skel = $entity->dump_skeleton ; # print $skel ; # $body = decode_qp($entity->parts(0)->parts(0)->body_as_string) ; $body = $entity->parts(0)->parts(0)->body_as_string ; # print $body ; # print Dumper($skel) ; $body =~ m|(http://www.evite.com/pages/invite/viewInvite.jsp?.+)\s| ; $url = $1 ; # print $url ; $browser = LWP::UserAgent->new ; $response = $browser->get($url) ; $contents = $response->content ; $invite = $contents ; $invite =~ s|.*>Location|Location|s ; $invite =~ s|(.*?).*|$1|s ; $invite =~ s||\n|g ; $invite =~ s|<.+?>||gs ; $invite =~ s| | |g ; $invite =~ s|^\s+||gm ; $invite =~ s|^\s*$||gm ; $invite =~ s|^View Map$||m ; $invite =~ s/:\s+.*?^/: /msg ; $invite =~ s/\|\s+\n// ; $body =~ s|Click below|--Details--\n$invite\n--\nClick below|s ; $body =~ s||\n|g ; $body = decode_entities($body) ; # print "$url\n" ; # print "Subject: $subject\n" ; $fh = Mail::Mailer->new('qmail') ; %headers = ( 'From' => "$from", 'To' => "$to", 'Subject' => "$subject" ); $fh->open(\%headers) ; select $fh ; print <close ;