Mail::DKIM::PublicKey - Represents a DKIM key


version 1.20220520


fetch() - retrieve a public key record from DNS

  my $public_key = Mail::DKIM::PublicKey->fetch(
                      Protocol => 'dns',
                      Selector => 'brisbane',
                      Domain => '',

If the public key is found, a Mail::DKIM::PublicKey object is returned, representing the information found in DNS. If the public key does not exist in DNS, then undef is returned. If a DNS error occurs while fetching the key, then this method will die. If the public key was found, but is not valid (e.g. it is "revoked"), then this method will die.


granularity() - get or set the granularity (g=) field

  my $g = $public_key->granularity;


Granularity of the key. The value must match the Local-part of the effective "i=" tag of the DKIM-Signature header field. The granularity is a literal value, or a pattern with a single '*' wildcard character that matches zero or more characters.

If no granularity is defined, then the default value, '*', will be returned.


  • Jason Long <>

  • Marc Bradshaw <>

  • Bron Gondwana <> (ARC)


Work on ensuring that this module passes the ARC test suite was generously sponsored by Valimail (


  • Copyright (C) 2013 by Messiah College

  • Copyright (C) 2010 by Jason Long

  • Copyright (C) 2017 by Standcore LLC

  • Copyright (C) 2020 by FastMail Pty Ltd

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.