Revision history for Mail-Milter-Authentication
2.20200331.1 2020-03-31 23:54:13+00:00 UTC
- ARC: x-arc should use set_key not key
2.20200329.1 2020-03-29 23:55:13+00:00 UTC
- Metrics: Upgrade to Prometheus::Tiny::Shared 0.020
backed by Hash::SharedMem
2.20200319 2020-03-19 03:51:02+00:00 UTC
- Fix problem loading external modules
2.20200313 2020-03-13 04:03:59+00:00 UTC
- Try and clean-up state on an unexpected exit/restart
2.20200302 2020-03-02 04:50:55+00:00 UTC
- Require minimum Perl 5.20
- ARC: Merge ARC Handler into core
- Abusix: Merge Abusix Handler into core
- BIMI: Merge BIMI Handler into core
- Blocker: Merge Blocker Handler into core
- Core: Modernise and tind some code
- Core: Set a default version for metrics where one does not exist
- Core: Milter protocol quarantine fixes
- ARC: Use x-arc- prefix for derived Authentication Results
- Core: Better reporting on errors
- Core: Ability to email errors to admin address
- BIMI: Add SPF policy checks to BIMI handler
- Metrics: Use Prometheus::Tiny::Shared 0.011 backed by Sqlite
2.20200206 2020-02-06 01:15:45+00:00 UTC
- Size: Add metrics for added header bytes
2.20200202 2020-02-02 14:23:58+00:00 UTC
- DMARC: Updated ARC override reporting re RFC
- DMARC: Add metrics for active/pending reports
- Core: Added version metrics
2.20200129 (BIMI) 2020-01-29 UTC
- Update declaration of PreReqs
2.20200107 2020-01-07 04:26:20+00:00 UTC
- Ignore Errors from bgsend
2.20200106 2020-01-06 04:09:07+00:00 UTC
- Properly clear DNS errors cache on close
2.20200102 (BIMI) 2020-01-02 UTC
- Updated for new Mail::BIMI
- Trust ARC
2.20200102 2020-01-02 01:14:35+00:00 UTC
- DMARC: Store all DMARC result object for other handlers
- Properly set IP objects in tester
2.20191206 2019-12-05 02:14:47+00:00 UTC
- Fix second header parse bug
2.20191205 (ARC) 2019-12-05 01:46:10+00:00 UTC
- Fix header parse bug
2.20191205 2019-12-05 01:25:51+00:00 UTC
- Send DNS requests early
- Fix header parse bug
2.20191120 (blocker) 2019-11-20 23:57:12+00:00 UTC
- First release
2.20191106 2019-11-06 01:22:25+00:00 UTC
- More aggressive handling of DNS timeoutsi
2.20190523 2019-05-23 02:16:29+00:00 UTC
- ReturnOK: Add detail in comments
- ReturnOK: Don't duplicate checks for repeated domains
- Core: Use Log::Dispatchouli for logging
2.20190502 2019-05-02 15:54:56+10:00 Australia/Melbourne
- DMARC: Make sure we actually have a trusted ARC chain before
applying arc_before_list
2.20190501 2019-05-01 11:52:35+10:00 Australia/Melbourne
- DMARC: Option to override List-ID detection if we have ARC
2.20181213 (Abusix) 2018-12-13 Australia/Melbourne
- Removed stray debugging output
2.20181212 2018-12-12 15:17:16+11:00 Australia/Melbourne
- Core: Remap IP addresses as early as possible.
2.20181204 (Abusix) 2018-12-03 Australia/Melbourne
- Set TLS to 0 if not encrypted and TLS handler is loaded
2.20181203 (Abusix) 2018-12-03 Australia/Melbourne
- First Release
2.20181130 2018-11-30 15:12:34+11:00 Australia/Melbourne
- Core/TLS: Expose the TLS state in a helper method.
- Core: Enforce DNS timeouts
2.20181114 2018-11-14 15:20:39+11:00 Australia/Melbourne
- Core: Return effective config in toml or json
NB The version of TOML used here is not sufficient to
express all possible configurations, in particular those
which would require a . in the key name (ip addresses etc) are
not possible to express in TOML.
As such, TOML should be considered as experimental.
- Core: Allow ip remapping based on received HELO host
- Core: Pre-load some Net::DNS::RR modules pre-fork
- Core: Allow multiple digit extended return codes
2.20181024 2018-10-24 12:02:46+11:00 Australia/Melbourne
- DMARC: Defer saving of aggregate reports until the close stage
- Metrics: Use shared memory for metrics processing rather than
child<>parent socket calls.
Requires Prometheus::Tiny::Shared (and Cache::FastMmap)
2.20181013 (ARC) 2018-10-13 09:22:28-04:00 America/New_York
- Add smtp.remote-ip
2.20181013 2018-10-13 08:58:04-04:00 America/New_York
- IPRev: rename policy.iprev to smtp.remote-ip for interop
2.20180927 2018-09-27 14:00:13+10:00 Australia/Melbourne
- DMARC: Record policy used (p or sp) in header and metrics
2.20180912 2018-09-12 22:03:15+10:00 Australia/Melbourne
- Fix bug in loading of conf.d files
2.20180911 (ARC) 2018-09-11 13:03:03+10:00 Australia/Melbourne
- Fix detection of domain in identity when inheriting DKIM results.
2.20180903 (ARC) 2018-09-03 15:52:55+10:00 Australia/Melbourne
- Option to lookup trusted arc domains via DNS
2.20180903 2018-09-03 14:47:52+10:00 Australia/Melbourne
- DMARC: Allow whitelist by passing SPF domain.
- DMARC: Allow whitelist lookup via a dns whitelist.
- DMARC: Allow configuration of disposition for failing mailing list messages
- DMARC: Check whitelist before list detection
2.20180726 2018-07-26 16:30:40+01:00 Europe/London
- Allow config file to be written in TOML
- DMARC: Add policy decision factors in policy ptype entries
- SMTP: Don't hold entire message in memory unless necessary
Option to chunk message when passing to handlers
Option to use spool file rather than using memory
- SMTP: Count quarantined mail properly in metrics
2.20180612 (ARC) 2018-06-12 13:47:27+10:00 Australia/Melbourne
- Follow RFC 8301 security recommendations by default
- Handle full identities in override
2.20180612 2018-06-12 13:32:26+10:00 Australia/Melbourne
- Bugfix: clear quarantine reason after use
2.20180608 2018-06-08 21:14:19+02:00 Europe/Berlin
- ReturnOK: Rewrite Handler to handle multiple addresses properly
- Core: Fix per-protocol-section timeouts
- DKIM: Follow RFC 8301 security recommendations by default
- Core: Improved the HTTP status page
- DMARC: Correctly report DMARC policy when using ARC override
- DMARC: Set the disposition more reliably
- Core: methods to set defer/quarantine reasons
- Core: set a header for quarantined mail
- Sanitize: Add code to remove arbitrary headers
- Milter: Experimental support for Quarantine action
2.20180526 2018-05-27 09:11:02+10:00 Australia/Melbourne
- Removed experimental external callback stage hooks
- Allow handlers to specify required BEFORE other handlers
2.20180525 2018-05-25 13:01:51+10:00 Australia/Melbourne
- Add external callback hooks for stage callbacks
- Add external callback hook for handler config
- More timeout improvements
- DKIM: switch extra properties to more standard properties
- Minimum perl verion 5.10 required (Dependencies demand it)
- Make ptype of TLS/PTR/SPF entries more correct
2.20180521 (ARC) 2018-05-21 14:41:56+10:00 Australia/Melbourne
- Option to pull values from a trusted ARC chain for use elsewhere
- Manually check timeout status in key stages
2.20180521 2018-05-21 14:33:46+10:00 Australia/Melbourne
- Add method to manually check timeout status in Handlers
- Switch to useconds internally for Handler timeouts
- Fix test data on some BSD systems
- DMARC: Option to pull values from a trusted ARC chain
2.20180511 2018-05-11 11:50:22+10:00 Australia/Melbourne
- Return exception type correctly to caller
2.20180510 (BIMI) 2018-05-10 Australia/Melbourne
- Improve handling of timeouts
2.20180510 (ARC) 2018-05-10 15:15:15+10:00 Australia/Melbourne
- Improve handling of timeouts
2.20180510 2018-05-10 14:58:08+10:00 Australia/Melbourne
- Improve handling of timeouts
2.20180509 2018-05-09 15:19:12+10:00 Australia/Melbourne
- Make sure timeout events are propigated correctly
- Silence some warnings
2.20180430 2018-04-30 21:02:23+10:00 Australia/Melbourne
- Allow folding of Authentication-Results header
- Fix bug where handlers could receive emptystring instead of 0
2.20180329 2018-03-29 11:12:49+11:00 Australia/Melbourne
- Updated config processor to be a generic external callback handler
2.20180328 2018-03-28 21:26:54+11:00 Australia/Melbourne
- Add config option to process loaded config with a named Perl module
2.20180326 2018-03-26 13:09:14+11:00 Australia/Melbourne
- Allow indent/fold style and depth to be configured
- Build the internal AR header list using objects
2.20180318 (ARC) 2018-03-18 Australia/Melbourne
- Pass headers as objects
- Change build system to dist zilla
2.20180318 2018-03-18 Australia/Melbourne
- Allow remapping of IP address/HELO based on source IP address
- Authentication-Results headers are now passed as objects internally
- Added Mail::Milter::Authentication::Tester::HandlerTester to improve testing of handlers
- Improved testing frameworks
- Switched build framework to Dist::Zilla
- Minimum Perl version is now 5.10 due to dependencies in Mail::DMARC
- Improve output from tests when there are failures
- Fix Best guess SPF mode
1.1.7 2017-12-21
- Removed nasty recursion bug in header sorting
- Updated DMARC policy reporting
1.1.6 2017-12-20
- DMARC processing for all domains found in message headers
- Avoid semicolon in DMARC result comment
- Updated IPRev (and PTR) to follow CNAMEs
- Added experimental "Best Guess SPF" option
1.1.6 (ARC) 2017-12-18
- Fix bug which prevented ARCSealing when Domain != ServerId
1.1.5 (ARC) 2017-12-16
- First production ready release
1.1.5 2017-12-16
- Added Mail::Milter::Authentication::Tester module to help with testing handlers
- Report DMARC policy deviations
1.1.4 2017-10-19
- Added a FromAlignment checker handler
- Improvements in timeout handling
- Added more metrics to the ReturkOK handler
- Extra optional information in DKIM results
1.1.3 (ARC) 2017-10-02
- First public release of ARC handler
- This handler is experimental
1.1.3 2017-10-01
- Handler for capturing metrics on message size
- Collect metrics for processing time in each handler/stage
- Defer internal counting of metrics until after transaction
- Generate grafana dashboard automatically for installed handlers
- Allow metrics port to be unix socket
- Tests for metrics system
- New handler to gather metrics of the size of messages/headers processed
- Make the IPRev handler rfc compliant
- Add metrics for IPRev, PTR, and ReturnOK handlers
- Stability fixes
1.1.2 2017-08-22
- Fixed process management under SmartOS
- Added post processing callback for adding headers (Required for future ARC handler)
- Improve DNS mocking in tests by using Net::DNS::Resolver::Mock
- Fix syslog for Debian 9
- Add DKIM hash algorithm to metrics and AR comments
- Parse headers for TLS information in SMTP protocol mode
- Misc bugfixes
1.1.1 2017-04-14
- Added metrics collection (prometheus)
- Re-write address parsing code to avoid Email::Address::parse issues
- SMTP Debugging modes added
- Correctly handle From header with odd case in DMARC module
- Added example metrics dashboard for Grafana
- Metrics bugfixes
- Improved test suite
1.1.0 2016-07-01
- Allow email to be rejected by handlers
- Option to reject DMARC p=reject failures
- DMARC reject whitelist based on ip or dkim
- Split X-Google-DKIM checks into own handler
- DKIM DNS error handling improvements
- Optionally hide Domainkeys results
- Updates to improve operation when running as a postfix pre-queue filter
- Do not drop connections when restarting
- Better handling of multiple instances
- Updated daemon control
- Improved logging
1.0.1 2015-09-11
- Removed unrequired error handling
- Fixed some typos (sergeyromanov)
- Allow relaxed JSON parsing in config
1.0.0 2015-08-22
- Version bump to avoid confusion with old unreleased versions
- Cleaned up CPANTS errors
- Fixed inconsistent versions
- Moved handler config docs into handlers
- Fixed possible dependency loop when misconfigured
- Improve logging to stderr when logtoerr is set
0.1.1 2015-08-05
- Released to CPAN
0.1.0 2015-07-21
- Catch warnings and report in log with context.
- Skip DMARC reporting for specified addresses.
0.08 2015-02-23
- Fixes header unwrapping issue
- Allow DMARC reporting to be disabled
- DMARC: preload the PSL where possible
- Better SMTP pipeline handling
0.07 2015-02-02
- Fix up some warning output.
- Fixed edge case which caused false DKIM failures.
- Allow use as an SMTP proxy based after queue filter.
- More test casese added.
- Allow listening on multiple ports.
- Bug Fixes.
0.06 2015-01-13
- First version, released on an unsuspecting world.