-
Notifications
You must be signed in to change notification settings - Fork 21
/
Changes
583 lines (465 loc) · 23.2 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
Revision history for Mail-Milter-Authentication
{{$NEXT}}
- DMARC: Fix an error in logs when suppressing DMARC reports
3.20241024 2024-10-24 20:54:14+11:00 Australia/Melbourne
- Optimizations and efficiency improvements
3.20241011 2024-10-11 15:06:59+11:00 Australia/Melbourne
- DMARC: Add HBL address style report suppression
New config item: report_suppression_email_list
3.20240827 2024-08-27 10:35:56+10:00 Australia/Melbourne
- Core: Make the DNS Timeouts caching configurable
Thanks to Jedrzej Jajor (@jedrzejj)
Adds a config option (cache_dns_timeouts) to allow disabling the
caching of domains which timed out during a DNS query. By default
the option is enabled to preserve the current behaviour. Setting
the option to 0 disables the cache and the query will be sent to the
DNS resolver each time regardless of previous timeouts.
- ARC: Fix bug in ARC use of DKIM identity where no DKIM domain exists
- Core: Skip addresses with more than 1 @ as bogus
- Core: Don't override log_dispatchouli's configuration default values
Thanks to: Norikatsu Shigemura (@nanorkyo)
3.20240701 2024-07-01 14:10:31+10:00 Australia/Melbourne
- DMARC: New option to enable strict processing of rfc5322 from domains.
Adds the strict_multifrom config item to DMARC (default false).
If set, the handler will reject/quarantine messages where
multiple rfc5322 from domains are present.
DMARC processing/reporting will continue as usual as defined by
the *_on_multifrom settings, however any dispositions will
be overridden to reject or quarantine depending on the value set
for hard_reject.
- ARC/DMARC: Override DMARC enforcement when the trusted ARC chain has
a passing DMARC entry.
This improves the case where an ARC trusted forwarder has broken
authentication without leaving enough SPF/DKIM indicators in the
AAR for us to process, OR has modified the RFC5322 From domain as
is the case with certain privacy focussed bi-directional
forwarding services
3.20240618 2024-06-18 17:18:47+10:00 Australia/Melbourne
- Config: Fix generation of some directories when they are not supplied and
also do not exist. This should fix issues with OpenBSD
3.20240205 2024-02-05 02:47:38+00:00 UTC
- BIMI: Add metrics for new BIMI certificate types
3.20230911 2023-09-11 06:18:44+00:00 UTC
- Core: Switch from deprecated method in Net::DNS
In Net::DNS::Resolver, call the rdstring method
rather than the deprecated rdstring method
This change bumps the minimum version of Net::DNS
required to 1.01
- SPF: Add option to detect and optionally mitigate SPF upgrade problems.
- Core: Add authentication_milter_log command with arex subcommand
which can be used to process ARex JSON log format back into
standard Authentication-Results: header lines
3.20230629 2023-06-29 23:44:32+00:00 UTC
- DKIM: Prepare for Ed25519 support in Mail::DKIM
Ed25519 key types do not have a size method
which can lead to confusing results.
3.20230214 2023-02-14 23:31:27+00:00 UTC
- Core: Fix get_client_proto for Net::Server>=2.011
Thanks to @J5lx
- DMARC: Fix config file existence checks.
DMARC: Fix config lookups for config_file and verbosity.
Core: Set config property in parent hooks.
Thanks to @dev-aaront-org
3.20221121 2022-11-21 04:08:15+00:00 UTC
- Core: Added option to log all added Authentication-Results headers
in JSON format for processing with Mail::AuthenticationResults
including option to also log in legacy format to allow transition.
- Core: When we see parse errors for AR existing headers, log the header
not the exception
[New config items]
extended_log - Log added Authentication-Results headers in JSON format
legacy_log - When logging extended Authentication-Results logs, also log in legacy format
3.20221006 2022-10-06 19:27:39+00:00 UTC
- Core: Changed logging, Most log entries are now only sent in
debugging mode (LOG_DEBUG), logging of Authentication-Results
added has a new format.
3.20220914 2022-09-14 00:33:40+00:00 UTC
- Core: Allow the location of the Net::Server lock file to be specified
3.20220131 2022-01-31 04:04:43+00:00 UTC
- DMARC: When an invalid MAIL_FROM is encountered continue processing
as if there were no MAIL_FROM domain.
- DMARC: Catch and ignore bad ARC results
3.20210914 2021-09-14 04:00:11+00:00 UTC
- Bugfix: Properly report selectors that truthy evaluate to false
3.20210907 2021-09-07 00:26:14+00:00 UTC
- Client: Chunk the body when sending with Mail::Milter::Authentication::Client
3.20210825 2021-08-25 01:01:38+00:00 UTC
- Core: Allow Authentication-Results header to be split or renamed per Handler
3.20210707 2021-07-07 00:29:17+00:00 UTC
- DNS: More consistent error logging on DNS lookup timeouts
- RBLDNS: Config structure change
[UPDATED Config Items for RBLDNS]
RBLDNS config items should be moved under a new rbls key
A future update will make this change mandatory, please update your
configs now.
3.20210514 2021-05-14 01:15:58+00:00 UTC
- Core: Fix an error when appending Connection scope authentication-results
header parts which would cause processing child processes to crash.
3.20210324 2021-03-24 06:00:40+00:00 UTC
- DMARC: When a report fails to save move it to error state
- Sanitize: Allow the Sanitize handler to be used by
other handlers to remove headers.
- BIMI: Use the Sanitize handler to remove existing headers
- BIMI: Add an overall timeout to BIMI processing
- RBLDNS: Use the Sanitize handler to remove existing headers
[New Config Items for BIMI]
sanitize_location_header - Remove existing BIMI-Location header? yes|no|silent (default yes)
sanitize_indicator_header - Remove existing BIMI-Location header? yes|no|silent (default silent)
timeout - Timeout, in microseconds, to apply to a BIMI record check/fetch, detault 5000000 (5s)
[New Config Items for RBLDNS]
$key sanitize_header - Remove existing header? yes|no|silent (default yes)
3.20210308 2021-03-08 22:55:12+00:00 UTC
- Better handling of timeouts in DMARC dequeue stage
- Allow more than 1 dequeue process to run at a time
- DMARC: Added report suppression list
[New Config Items]
max_dequeue - How many dequeue processes can we run at once
[New Config Items for DMARC]
report_suppression_list - RBL used to look Org domains for which we want to suppress reporting
3.20210113 2021-01-13 04:54:40+00:00 UTC
- RBLDNS: Add module to lookup connecting IP with RBLDNS
- Switch to a purely numeric version string
[New Handler]
RBLDNS - Lookup connecting IP with RBLDNS
2.20210105.2 2021-01-05 06:02:43+00:00 UTC
- Make Net::Server patches optional
These were causing issues in some cases where the server was only
listening on a single port.
- BIMI: Optional RBL allow list for domains that will not require evidence documents
- DMARC: Option to lookup DMARC domains on an RBL and
add configurable policy entries to the DMARC result.
[New Config Items]
patch_net_server - If true, try and patch some Net::Server issues
[New Config Items for DMARC]
policy_rbl_lookup - set of RBLs to check the from domain against for policy entries
[New Config Items for BIMI]
rbl_no_evidence_allowlist - Optonal RBL Allow list of org domains that do NOT require evidence documents
2.20201209.2 2020-12-09 10:40:10+00:00 UTC
- Revert Net::Server patches
These were causing issues in some cases where the server was only
listening on a single port.
2.20201208.2 2020-12-08 04:25:22+00:00 UTC
- Apply some patches to Net::Server
- Core: Misc fixes to some error states
2.20201113.2 2020-11-13 04:45:42+00:00 UTC
- Logger: Added a handler to add additional logging detail
- DMARC: Rename failed spool files with .err extension
- Abusix: Delete failed spool files
2.20200930.2 2020-09-30 08:51:35+00:00 UTC
- Improve language used internally
- Core: Configurable SERVFAIL timeout with default
- Core: Avoid opening unnecessary sockets
- Core: Add dequeue handling
- Core: Setup cache, lib, and spool directories
- DMARC: Use dequeue for report saving
- AbusixDataFeed: Defer feed sending into dequeue handler
- Sanitize: Fix domain/subdomain checking - Thanks to @dev-aaront-org
- Client: Fix handling of mail data with CRLF endings - Thanks to @dev-aaront-org
- Milter: Set SMFIP_HDR_LEADSPC to get exact whitespace from MTA - Thanks to @dev-aaront-org
- DMARC: Fix hide_none result - Thanks to @dev-aaront-org
- Milter: Replace CRLF with LF in headers sent to MTA - Thanks to @dev-aaront-org
- Milter: Set SMFIP_HDR_LEADSPC to get exact whitespace from MTA - Thanks to @dev-aaront-org
- Core: Add hide_none option for an empty AR header - Thanks to @dev-aaront-org
- SMTP: Pass ESMTP parameters to MAIL and RCPT callbacks - Thanks to @dev-aaront-org
- Core: Allow certain HTTP pages to be disabled using the metric_basic_http option
- BIMI: Use Mail::BIMI Version 2 - A more complete implementation of the current BIMI standards
[New Config Items]
metric_basic_http - Disable extended http services such as config and grafana json pages
cache_dir - Path to the shared cache directory
spool_dir - Path to the shared spool directory
lib_dir - Path to the shared lib directory
dequeue_timeout - Timeout for Dequeue callbacks
check_for_dequeue - How often in seconds should a dequeue process be spawned
dns_servfail_timeout - How long in microseconds a SERVFAIL can take before being considered a timeout
hide_none - Do not add the Authentication-Results header if the result is 'none'
[New Config Items for BIMI]
handlers BIMI bimi_options - Options to pass into Mail::BIMI->new
handlers BIMI rbl_allowlist - Optional RBL Allow list of allowed org domains
handlers BIMI rbl_blocklist - Optional RBL Block list of disallowed org domains
2.20200625.2 2020-06-25 04:34:45+00:00 UTC
- DMARC: Option to redact some Reporting fields
[New Config Items]
handlers DMARC hide_report_to - If set, remove envelope_to from DMARC reports
2.20200612.2 2020-06-12 00:14:00+00:00 UTC
- Core: Only set Nameservers when given
Prevents issue with newer Net::DNS::Resolver
2.20200602.2 2020-06-02 09:11:51+00:00 UTC
- XGoogleDKIM: Require a more modern Mail::DKIM
- ARC: Require a more modern Mail::DKIM
2.20200602.1 2020-06-02 06:18:01+00:00 UTC
- DKIM: Require a more modern Mail::DKIM
2.20200513.1 2020-05-13 04:13:58+00:00 UTC
- BIMI: Prepare for breaking changes in Mail::BIMI 2
2.20200420.1 2020-04-20 04:31:22+00:00 UTC
- DMARC: Allow limiting of DMARC processing in a single message
- Core: use JSON::XS instead of JSON
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.