.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Mail::DKIM::Policy 3pm" .TH Mail::DKIM::Policy 3pm "2023-02-16" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mail::DKIM::Policy \- abstract base class for originator "signing" policies .SH "VERSION" .IX Header "VERSION" version 1.20230212 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& # get all policies that apply to a verified message \& foreach my $policy ($dkim\->policies) \& { \& \& # the name of this policy \& my $name = $policy\->name; \& \& # the location in DNS where this policy was found \& my $location = $policy\->location; \& \& # apply this policy to the message being verified \& my $result = $policy\->apply($dkim); \& \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Between the various versions of the DomainKeys/DKIM standards, several different forms of sender \*(L"signing\*(R" policies have been defined. In order for the Mail::DKIM library to support these different policies, it uses several different subclasses. All subclasses support this general interface, so that a program using Mail::DKIM can support any and all policies found for a message. .SH "METHODS" .IX Header "METHODS" These methods are supported by all classes implementing the Mail::DKIM::Policy interface. .SS "\fBapply()\fP" .IX Subsection "apply()" Apply the policy to the results of a \s-1DKIM\s0 verifier. .PP .Vb 1 \& my $result = $policy\->apply($dkim_verifier); .Ve .PP The caller must provide an instance of Mail::DKIM::Verifier, one which has already been fed the message being verified. .PP Possible results are: .IP "accept" 4 .IX Item "accept" The message is approved by the sender signing policy. .IP "reject" 4 .IX Item "reject" The message is rejected by the sender signing policy. .IP "neutral" 4 .IX Item "neutral" The message is neither approved nor rejected by the sender signing policy. It can be considered suspicious. .SS "\fBas_string()\fP" .IX Subsection "as_string()" The policy as a string. .PP Note that the string returned by this method will not necessarily have the tags ordered the same as the text record found in \s-1DNS.\s0 .SS "\fBis_implied_default_policy()\fP" .IX Subsection "is_implied_default_policy()" Is this policy implied? .PP .Vb 1 \& my $is_implied = $policy\->is_implied_default_policy; .Ve .PP If you fetch the policy for a particular domain, but that domain does not have a policy published, then the \*(L"default policy\*(R" is in effect. Use this method to detect when that happens. .SS "\fBlocation()\fP" .IX Subsection "location()" Where the policy was fetched from. .PP This is generally a domain name, the domain name where the policy was published. .PP If nothing is published for the domain, and the default policy was returned instead, the location will be \f(CW\*(C`undef\*(C'\fR. .SS "\fBname()\fP" .IX Subsection "name()" Identify what type of policy this is. .PP This currently returns strings like \*(L"sender\*(R", \*(L"author\*(R", and \*(L"\s-1ADSP\*(R".\s0 It is subject to change in the next version of Mail::DKIM. .SH "SEE ALSO" .IX Header "SEE ALSO" Mail::DKIM::DkPolicy \- for \s-1RFC4870\s0(historical) DomainKeys sender signing policies .PP Mail::DKIM::DkimPolicy \- for early draft \s-1DKIM\s0 sender signing policies .PP Mail::DKIM::AuthorDomainPolicy \- for Author Domain Signing Practices (\s-1ADSP\s0) .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Jason Long .IP "\(bu" 4 Marc Bradshaw .IP "\(bu" 4 Bron Gondwana (\s-1ARC\s0) .SH "THANKS" .IX Header "THANKS" Work on ensuring that this module passes the \s-1ARC\s0 test suite was generously sponsored by Valimail (https://www.valimail.com/) .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" .IP "\(bu" 4 Copyright (C) 2013 by Messiah College .IP "\(bu" 4 Copyright (C) 2010 by Jason Long .IP "\(bu" 4 Copyright (C) 2017 by Standcore \s-1LLC\s0 .IP "\(bu" 4 Copyright (C) 2020 by FastMail Pty Ltd .PP 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.