#!/usr/bin/perl -w use strict; use SOAP::Lite; my $addr = 'wife@emailaddress.com'; my $soap = SOAP::Lite ->uri('urn:vgx-joke') ->proxy('http://services.xmltoday.com/vx_engine/soap-trigger.pperl') ->on_fault( sub { my($soap, $res) = @_; die ref $res ? $res->faultdetail : $soap->transport->status, "\n"; } ); my $res; eval { $res = $soap->JokeOfTheDay()->result; }; my ($subject, $message); if (!$@ && $res->{'title'} && $res->{'text'}) { $subject = "My daily email: $res->{'title'}"; $message = $res->{'text'}; } else { $subject = 'My daily email'; $message = "Sorry, I can't think of any jokes today. :("; } open(MAIL, "| /usr/sbin/sendmail $addr") or die $!; print MAIL< $message THE_END close(MAIL) or die $!;