NAME Mail::OpenDKIM - Provides an interface to libOpenDKIM SYNOPSIS # sign outgoing message use Mail::DKIM::Signer; # create a signer object my $dkim = Mail::OpenDKIM::Signer->new( Algorithm => 'rsa-sha1', Method => 'relaxed', Domain => 'example.org', Selector => 'selector1', KeyFile => 'private.key', ); # read an email and pass it into the signer, one line at a time while(<STDIN>) { # remove local line terminators chomp; s/\015$//; # use SMTP line terminators $dkim->PRINT("$_\015\012"); } $dkim->CLOSE(); # what is the signature result? my $signature = $dkim->signature; print $signature->as_string; # check validity of incoming message my $o = Mail::OpenDKIM->new(); $o->dkim_init(); my $d = $o->dkim_verify({ id => 'MLM', }); $msg =~ s/\n/\r\n/g; $d->dkim_chunk({ chunkp => $msg, len => length($msg) }); $d->dkim_chunk({ chunkp => '', len => 0 }); $d->dkim_eom(); my $sig = $d->dkim_getsignature(); $d->dkim_sig_process({ sig => $sig }); printf "0x\n", $d->dkim_sig_getflags({ sig => $sig }); $d->dkim_free(); $o->dkim_close(); DESCRIPTION Mail::OpenDKIM, coupled with Mail::OpenDKIM::DKIM, provides a means of calling libOpenDKIM from Perl. Mail::OpenDKIM implements those routine taking a DKIM_LIB argument; those taking a DKIM argument have been implemented in Mail::OpenDKIM::DKIM. Mail::OpenDKIM::Signer provides a drop in replacement for the signature process provided by Mail::DKIM::Signer. When an error is encountered, an Error::Simple object is thrown. SUBROUTINES/METHODS new Create a new signing/verifying object. After doing this you will need to call the dkim_init method before you can do much else. dkim_init For further information, refer to http://www.opendkim.org/libopendkim/ dkim_close For further information, refer to http://www.opendkim.org/libopendkim/ dkim_flush_cache For further information, refer to http://www.opendkim.org/libopendkim/ dkim_libfeature For further information, refer to http://www.opendkim.org/libopendkim/ dkim_sign For further information, refer to http://www.opendkim.org/libopendkim/ Returns a Mail::OpenDKIM::DKIM object. dkim_verify For further information, refer to http://www.opendkim.org/libopendkim/ Returns a Mail::OpenDKIM::DKIM object. The memclosure argument is ignored. dkim_getcachestats For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_dns_callback For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_key_lookup For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_policy_lookup For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_signature_handle For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_signature_handle_free For further information, refer to http://www.opendkim.org/libopendkim/ dkim_set_signature_tagvalues For further information, refer to http://www.opendkim.org/libopendkim/ dkim_dns_set_query_cancel For further information, refer to http://www.opendkim.org/libopendkim/ dkim_dns_set_query_service For further information, refer to http://www.opendkim.org/libopendkim/ dkim_dns_set_query_start For further information, refer to http://www.opendkim.org/libopendkim/ dkim_dns_set_query_waitreply For further information, refer to http://www.opendkim.org/libopendkim/ dkim_options For further information, refer to http://www.opendkim.org/libopendkim/ dkim_libversion Static method. dkim_ssl_version Static method. dkim_getcachestats Static method. dkim_getpolicystr Calls C routine of same name. dkim_getpresultstr Calls C routine of same name. dkim_getresultstr Calls C routine of same name. dkim_sig_geterrorstr Calls C routine of same name. dkim_mail_parse Calls C routine of same name. EXPORT Many DKIM_* constants, e.g. DKIM_STAT_OK are exported. SEE ALSO Mail::DKIM http://www.opendkim.org/libopendkim/ RFC 4870, RFC 4871 DEPENDENCIES This module requires these other modules and libraries: Test::More libOpenDKIM 2.3 (http://www.opendkim.org/libopendkim/) C compiler NOTES Tested against libOpenDKIM 2.3.1. Known to fail to compile against 2.2. Only portions of Mail::DKIM::Signer interface, and the support for it, have been implemented. Please report any bugs or feature requests to "bug-mail-opendkim at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Mail-OpenDKIM>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. The signature creation rountines have been tested more thoroughly than the signature verification routines. Feedback will be greatfully received. AUTHOR Nigel Horne Vick Khera, "<vivek at khera.org>" SUPPORT You can find documentation for this module with the perldoc command. perldoc Mail::OpenDKIM You can also look for information at: * MailerMailer Project page <http://www.mailermailer.com/labs/projects/Mail-OpenDKIM.rwp> * RT: CPAN's request tracker <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mail-OpenDKIM> * AnnoCPAN: Annotated CPAN documentation <http://annocpan.org/dist/Mail-OpenDKIM> * CPAN Ratings <http://cpanratings.perl.org/d/Mail-OpenDKIM> * Search CPAN <http://search.cpan.org/dist/Mail-OpenDKIM/> SPONSOR This code has been developed under sponsorship of MailerMailer LLC, http://www.mailermailer.com/ COPYRIGHT AND LICENCE This module is Copyright 2014 Khera Communications, Inc. It is licensed under the same terms as Perl itself.
khera/Mail-OpenDKIM
Mail::OpenDKIM is a perl interface to the OpenDKIM C library. It also implements a drop-in replacement for the Mail::DKIM::Signer object.
Perl