I am trying to write an "email checker" and perform some checks against the message being sent. I'm getting hung up on getting the message into Mail::DKIM::verifier though. Here is the loading part of my script:
# slurp the email from STDIN
my( $raw );
{ local $/ = undef; local *FILE; open FILE, "-"; $raw = <FILE>; close
+FILE }
defined( $raw )
or die( "Nothing read from STDIN!\n" );
# Create an IO::Handle for Mail::DKIM::Verifier to read message from
my( $raw_iohandle ) = new IO::Scalar( \$raw );
# Read from the IO::Handle
my( $mail ) = load Mail::DKIM::Verifier->new();
$mail->load( \$raw_iohandle );
$mail->CLOSE;
# Import message to Email::Simple
my( $incoming ) = Email::Simple->new( \$raw );
And I get this error:
Use_of_uninitialized_value_in_<HANDLE>_at_/usr/lib/perl5/site_perl/5.8
+.8/Mail/DKIM/Common.pm_line_87./readline()_on_unopened_filehandle_at_
+/usr/lib/perl5/site_perl/5.8.8/Mail/DKIM/Common.pm_line_87./Can't_use
+_string_("Mail::DKIM::Verifier")_as_a_HASH_ref_while_"strict_refs"_in
+_use_at_/usr/lib/perl5/site_perl/5.8.8/Mail/DKIM/MessageParser.pm_lin
+e_88./
It's almost painfully obvious that I am trying to get the message into $mail incorrectly, but I do not see what I am doing wrong. Can someone show (and explain!) what I am doing wrong?