Changes for version 3.20240205 - 2024-02-05
- Fix pod in Mail::SPF::Util (RT#93241) Thanks to rwfranks@acm.org and GBECHIS@cpan.org
- Fixes char_str_list is not a valid sub in new Net::DNS (RT#149825) Reworked from patch supplied with thanks by GBECHIS@cpan.org
- BREAKING CHANGE: spfd is now installed in /bin instead of /sbin As a result Mail::SPF now respects an install prefix and may be more easily installed in a non root and/or local lib environment.
- 2.009 (2013-07-21 03:30)
- Mail::SPF:
- Default to querying only TXT type RRs (query_rr_types = Mail::SPF::Server-> query_rr_type_txt). Experience has shown that querying SPF type RRs is impractical.
- 2.008 (2012-01-30 08:15)
- Mail::SPF:
- Sanitize result local_explanation (as well as result object string representation) by replacing all non-printable or non-ascii characters with their hex-escaped representation (e.g., "\x00"). (Addresses: bugs.launchpad.net #806926)
- Miscellaneous:
- Change openspf.org URLs to openspf.net because openspf.org is unreachable indefinitely.
- Change <http://www.ietf.org/rfc/….txt> URLs to <http://tools.ietf.org/html/…>.
- META.yml: configure_requires: Module::Build 0.2805
- META.yml: requires: Net::DNS 0.62 (was: 0.52) (Closes: rt.cpan.org #28545)
- META.yml: Revert to flat version numbers for perl and Net::DNS::Resolver:: Programmable build requirements to avoid Module::Build::Compat/Makefile.PL incompatibilities. (Closes: rt.cpan.org #53231)
- Attempt to prevent a cascading failure in t/00.03-class-result.t that seems to happen under rare, unknown circumstances. (Closes: rt.cpan.org #39099)
- Debian:
- Declare Debian source package format as 3.0.
- Standards-Version: 3.9.2 (was: 3.8.3)
- Bump debhelper compatibility level to 7 (was: 5) and simplify debian/rules using debhelper 7 features.
- debian/control: Simplify depdendencies under the assumption that package will be installed on Debian Lenny (oldstable at the time of writing) or later (or the Ubuntu equivalent).
- debian/watch: Use dist-based URL.
- 2.007 (2009-10-31 21:00)
- Mail::SPF:
- Macro expansion:
- Distinguish between split and join delimiters; they are not necessarily the same.
- Support multiple split delimiters rather than at most one.
- Miscellaneous:
- We ship and pass the 2009.10 release of the official RFC 4408 test suite.
- Give advice in INSTALL on how to install without root privileges.
- Debian:
- Standards-Version: 3.8.3 (was: 3.8.0)
- Build-Depends-Indep: perl-modules (>= 5.10.0) | libmodule-build-perl (>= 0.26) (was: libmodule-build-perl (>= 0.26))
- 2.006 (2008-08-17 22:00)
- Mail::SPF:
- Added result object factory facility to Mail::SPF::Server in order to support the sub-classing of Mail::SPF::Server and Mail::SPF::Result. See README for details. Any code throwing Mail::SPF::Result(::*) objects directly should stop doing so and use Mail::SPF::Server::throw_result() instead.
- Added a "query_rr_types" option to Mail::SPF::Server's constructor as a way to disable the retrieval of either "SPF" or "TXT" type RRs. I wouldn't make use of it if I was you! ! Changed the "max_void_dns_lookups" option's default value from undef (i.e., no limit) to a limit of 2. This should not cause any problems in practice, however see the "max_void_dns_lookups" option's description for specifics on what this entails.
- Match <toplabel> patterns greedily by reversing the order of the <toplabel> regexp alternatives from RFC 4408. Thus TLDs with dashes (e.g., ".xn--wgv71a") are now correctly matched.
- In macro strings, expand '%-' to '%20' rather than '-'. Thanks to Frank Ellermann for providing a test case for the RFC 4408 test suite that inadvertently exposed this bug. > Mail::SPF::Result:
- Added new received_spf_header_name() constant specifying the "Received- SPF" header field name, which may (and usually should) be overridden by custom result sub-classes; see the documentation.
- Generate "identity=mailfrom" rather than "identity=mfrom" in "Received-SPF" header field.
- name() now returns a symbolic result name instead of the trailing part of the result class name. This should have no impact on 3rd-party code.
- Added new isa_by_name() method as an equivalent to the built-in isa(), taking a result name instead of a class name. Provides a superset of the is_code() method's functionality.
- Substituted ";"s for "&" parameter separators in the openspf.org "Why?" page URL in the default authority explanation string. This change is purely cosmetic.
- Minor documentation fixes and improvements.
- Miscellaneous:
- We ship and pass the 2008.08 release of the official RFC 4408 test suite.
- While officially declaring a build-requirement of Module::Build >= 0.2805 (which, if not satisfied, Module::Build itself will warn about, but not abort), do not strictly require it. If the META.yml file generated during package building is irrelevant, e.g., if we are being built by a package management/build system such as Debian's, then 0.26 is sufficient.
- Recommend NetAddr::IP >= 4.007, as it has all $& and $` removed for better performance; see <http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5312>.
- 2.005 (2007-05-30 23:00)
- Mail::SPF:
- Added a "max_void_dns_lookups" option to Mail::SPF::Server's constructor, allowing the number of potentially abusive lookups induced by DoS attacks to be limited. See the documentation of the Mail::SPF::Server class.
- Added a "precedence" class property to Mail::SPF::GlobalMod and sub-classes that defines the order in which global modifiers are to be processed (0: first, 1: last). See Mail::SPF::Mod. Mail::SPF::Mod::Exp has precedence 0.2, Mail::SPF::Mod::Redirect has 0.8. Also, Mail::SPF::Record::global_mods() now returns modifiers ordered by precedence.
- Added support for a non-standard %{_scope} pseudo macro that expands to the request's identity scope. Note: Do NOT use any such non-standard macros in explanation strings published in DNS! ! Mail::SPF::Util::valid_domain_for_ip_address() now requires a Mail::SPF:: Request object to be passed as a new second argument. This is actually consistent with many of Mail::SPF's methods. Please excuse the late API change (but who uses Mail::SPF::Util directly anyway?).
- Updated default authority explanation string to include identity scope in the openspf.org "Why?" page URL in order to avoid misleading result explanations.
- Truncate labels resulting from macro expansions to 63 bytes. This is not strictly required by RFC 4408, 8.1/27, but is merely meant as a precaution.
- Minor documentation fixes and improvements.
- Miscellaneous:
- We ship and pass the 2007.05 release of the official RFC 4408 test suite (no changes were required). ! Build-require Module::Build >= 0.2805 (was: >= 0.26), hopefully fixing a version.pm/CPAN.pm compatibility issue (closes: rt.cpan.org #26784). (Debian packaging is not affected because it does not rely on META.yml.)
- Debian:
- Conflicts: spfquery (<< 1.2.5.dfsg-1) (was unversioned)
- 2.004 (2007-01-20 02:00)
- Mail::SPF:
- Correctly fall back to default authority explanation if the authority domain does specify an explanation string but it cannot be expanded (e.g. due to syntax errors).
- In Mail::SPF::Result::received_spf_header(), gracefully fall back to a hostname of "unknown" if a fully qualified hostname can not be determined. Some (misconfigured) systems simply will not reveal one.
- Minor documentation improvements and fixes.
- Miscellaneous:
- Note in the README file that we pass the 2006.11 release of the official RFC 4408 test-suite.
- Tests:
- Do not test Mail::SPF::Util::hostname(), as some (misconfigured) systems simply will not reveal a fully qualified hostname (see CPANTS tests for 2.003).
- Minor code clean-up.
- 2.003 (2007-01-10 00:00)
- Mail::SPF:
- Fixed two Perl 5.6 incompatibilities:
- Added `use utf8` statements in several modules to keep Perl 5.6 from whining about /[\p{}]/.
- Do not use the `use constant { a=>1, b=>2 }` multiple-constants idiom, as it was introduced only in constant 1.03 (Perl 5.7.2).
- Fixed a very minor bug where a "TempError" result would incorrectly be returned in the very rare case when the SPF-type look-up succeeded but returned 0 records, and the following TXT-type look-up errored or timed out. Now a "None" result is correctly returned in that case as demanded by RFC 4408.
- spfquery:
- Minor documentation fixes.
- 2.002 (2006-12-14 00:00)
- Mail::SPF:
- Updated default authority explanation string to the SPF website's new "Why?" page URL parameters scheme: <http://www.openspf.org/Why?id=%{S}&ip=%{I}&receiver=%{R}>
- spfquery:
- Updated the '--help' text and man-page with regard to the black magic options (which require the yet unreleased Mail::SPF::BlackMagic module).
- 2.001 (gold release) (2006-12-09 20:00)
- Gold Release!
- Major overhaul: ! Major code refactoring, achieving full RFC 4408/4406 compliance, and breaking API compatibility with 2.000. ! Switched from ExtUtils::MakeMaker to Module::Build.
- Added complete rewrites of spfquery (2.500) and spfd (2.000).
- Added complete documentation.
- Added unit tests and the RFC 4408 test-suite.
- Added Debian package control files.
- And more... (closes: rt.cpan.org #20821, #20822, #21922, #21925)
- 2.000 (initial release) (2005-06-23 00:00)
- $Id: CHANGES 61 2013-07-22 03:45:15Z julian $
- vim:syn= tw=79 sts=2 sw=2
Documentation
(Mail::SPF) - Simple forking daemon to provide SPF query services
(Mail::SPF) - Checks if a given set of e-mail parameters matches a domain's SPF policy
Modules
An object-oriented implementation of Sender Policy Framework
Base class for Mail::SPF classes
SPF record macro string class
SPF record mechanism base class
SPF record a mechanism class
SPF record all mechanism class
SPF record exists mechanism class
SPF record ip4 mechanism class
SPF record ip6 mechanism class
SPF record include mechanism class
SPF record mx mechanism class
SPF record ptr mechanism class
SPF record modifier base class
SPF record exp modifier class
SPF record redirect modifier class
Abstract base class for SPF records
SPF request class
SPF result class
Abstract base class for SPF record mechanisms that operate on the SMTP sender's IP address
Server class for processing SPF requests
SPF record term class
Mail::SPF utility class
SPFv1 record class
Sender ID ("spf2.0") record class
Provides
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Exception.pm
in lib/Mail/SPF/Mod.pm
in lib/Mail/SPF/Mod.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Result.pm
in lib/Mail/SPF/Mod.pm