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() { # 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_getcachestats Static method. 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 . 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, "" 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 * RT: CPAN's request tracker * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * Search CPAN 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.