12014-09-03 (version: 1.40.03)
2 - Fix:  Corrected typo in RE for postscreen PREGREET & HANGUP fix was lost in merge.
3   Thanks: Michael Orlitzky
4
52014-08-28 (version: 1.40.02)
6 - Fix: Commented out some code which was accidentally left enabled, preventing the
7   script from running.
8
92014-08-01 (version: 1.40.01)
10 - Fix: Correct TLS matching for Postfix 2.11 and later. Thanks: John Wilcock
11 - Fix: Ignore cfg_get_str debug lines. Thanks: Bas Mevissen
12 - Fix: Ignore sacl_check:... lines. Thanks: Jonathan Herbach
13
142012-01-11 (version: 1.40.00)
15 - Change: License is now the MIT/X-Consortium License:
16   http://www.opensource.org/licenses/mit-license.php
17   This allows re-inclusion into the logwatch project.
18 - Fix: Ignore additional debug lines. Thanks: Peter Smrcak
19 - Fix: Corrected typo in RE for postscreen PREGREET & HANGUP.
20
212011-09-26 (version: 1.39.07)
22 - New: Support 2.9's enable_long_queue_ids via command line option
23   --[no]long_queue_ids and config file var $postfix_Enable_Long_Queue_Ids.
24   Default is disabled.  There will be issues with existing logs that contain
25   both formats.
26 - Fix: Support postscreen's WHITELIST VETO.
27 - Thanks: Noel Jones
28
292011-09-23 (version: 1.39.06)
30 - New: Support postscreen from postfix 2.8.  Updated for minor dnsblog
31   log changes. Note: tlsproxy messages are ignored for now.
32 - Change: Section dnsblog primary sort key is now listing site.
33 - Fix: Some "improper command pipelining" log lines were unmatched
34   (section: smtpprotocolviolation).
35 - Fix: Ignore proxy-reject w/no SMTP reply code.  Occurs after a queue file
36   size lmit exceeded warning by smtpd.
37 - New: Postfix 2.8.1 changes FCRDNS warning messages (section: hostnameverification).
38   See: http://article.gmane.org/gmane.mail.postfix.user/218112
39 - Internal: Removed remaining $re_IP in rblerror section, from v1.39.05.
40 - Thanks: Noel Jones, Tonio, Jase Thew, Alex, Michael Orlitzky
41
422010-11-12 (version: 1.39.05)
43 - Fix: Check input value to commify() against undef; required for perl 5.12.
44   Thanks: Michael Orlitzky
45 - Fix: Eliminate use of $re_IP, as it is too complicated, expensive, and did
46   not correctly match all valid IPv6 addresses.  Note: one remains in
47   RBL lookup error section, as parsing out IP is nontrivial  w/IPv6.
48 - Internal: Update URL to Sourceforge.
49
502010-03-23 (version: 1.39.04)
51 - Fix: Support Postfix 2.8's reject_rhsbl_reverse_client in RejectRBL.
52   Thanks: Noel Jones
53
542010-03-06 (version: 1.39.03)
55 - Fix: Support for reject_rhsbl_helo in RejectRBL section.
56   Thanks: Steve Bytnar
57
582010-03-03 (version: 1.39.02)
59 - Change: Merged section SaslAuthRelay into SaslAuth.  The purported SASL
60   sender is now included after an existing SASL_username.
61
622010-03-02 (version: 1.39.01)
63 - New: Allow enabling/disabling the summary section in config file, using
64   var $postfix_Show_Summary and command line option --[no]summary.
65   Thanks: Benedikt Bohm
66
672010-01-11 (version: 1.39.00)
68 - New: Support 2.7 experimental branch logging:
69      + smtpd's proxy-reject: placed in standard reject sections.
70      + smtpd's proxy-accept: ignored.
71      + postfix/postscreen: new section 'postscreen'.
72        Note: memory intensive, so limiter is set to 1, showing only counts
73	of various postscreen result.
74      + postfix/dnsblog: new section 'dnsblog'.
75        Note: memory intensive, so limiter is set to 1, showing only a list
76	of DNSBL'd IPs.  Disable this section by setting limiter to 0.
77      + postfix/verify: currently ignored
78      Thanks: Stefan Forster, Noel Jones
79 - New: Support 2.6 access(5) action BCC.  New section 'bcced'.
80 - New: New option --[no]unknown to show/suppress output of hostname of
81   'unknown' in formatted ip/hostname pairs.  Default: on.
82 - New: Updated postfix-logwatch.conf files to include instructions on how to
83   increase log scanning performance when not using policy services such as
84   policy-spf, etc.  See "Performance Note" in the .conf files.
85 - Change/Fix: Warning sections 'ratelimit and 'concurrenclylimit merged into
86   a new, generic 'anvil' section, which includes all of anvil's various limit
87   exceeded messages.  If you see errors after updating about these unknown
88   limiters, be sure to replace these two deprecated limiters with the new
89   one to your config file(s).
90 - Change: Use DSN from delivery verification probes as first level
91   key (section: 'deliverable').
92 - Change: Replace databasegeneration section header 'Database file
93   needs update' with 'Database is older than source file', as per request
94   on the Postfix mailing list.
95 - Fix: Handle more, and restructure, SASL authentication failed messages.
96   Thanks: Stefan
97 - Fix: Ignore some smtpd cache lines; handle postmaster delay notifications.
98   Thanks: Gabriele Beltrame
99 - Fix: Handle more postfwd lines.
100 - Fix: Prevent useless level 3 ':' output in section 'saslauthfail'.
101   Thanks: Armin T�ting
102 - Fix: Corrected some typos in man page.
103 - Fix: Added missing Error section (how was this missed!).
104 - Fix: Handle unmatched milter-{reject,hold,discard} lines that do not
105   include smtpd envelope data.
106 - Fix: reduce memory footprint for Delays reports (~30Mb per 1Mb log file).
107 - Fix: performance increases.
108
1092009-07-14 (version: 1.38.01)
110 - Fix: RE typo caused policydweight lines to be unmatched.
111 - Fix: Reduce to-be-ignored RE list searching by moving most common
112   REs to head of the list.
113
1142009-07-10 (version: 1.38.00pre6)
115 - Fix: Handle Softfail and Temperror in pypolicyd-spf (PolicySPF).
116   postfix/policy-spf.  Thanks: Chris Burton.
117
1182009-07-10 (version: 1.38.00pre5)
119 - Fix: Comment out extra OnlyService line in postfix-logwatch.conf* files,
120   leaving as a sample.  The duplicate causes logwatch to filter out postgrey,
121   postfwd, and policyd-spf lines.  Also include '-' in the RE to capture
122   postfix/policy-spf.  Thanks: Malte Koestner, Chris Burton.
123
1242009-07-07 (version: 1.38.00pre4)
125 - New: Error and diagnostic output from non-postfix programs will be moved
126   into the WarningsOther section.
127 - Fix: Added Tarpit whitelisted to postgrey output.
128 - Fix: Handle additional output for pypolicyd-spf, postgrey, and postfix.
129 - Fix: Add policyd-spf to postfix_Syslog_Name and OnlyService.
130   Thanks: Chris Burton
131 - Fix: logic error which inadvertently incremented Notification Sent counter
132   on ignored postfix/bounce lines.
133 - Fix: Add -T to interpreter line (removed inadvertently to use perl debugger).
134 - Change: Remove 'postgrey' from default syslog_name.  This only affects users
135   without a configuration file, where it is enabled by default.
136
1372009-07-06 (version: 1.38.00pre3)
138 - New: Handle pypolicyd-spf.  Thanks: Chris Burton
139 - New: ConnectionInbound section shows IP/hostname.  Disabled by default,
140   for performance reasons.  Requested by: Jernej Porenta
141 - Change: MxErrors changed to DNSErrors, generalizing DNS lookup errors.
142   A beneficial side affect is the removal of the numerous DNS lookup
143   informational "warnings" from the top of the Summary section; they
144   can also, of course, be disabled in the Detailed section.
145 - Fix: Handle END-OF-MESSAGE stage in reject code.
146
1472009-07-02 (version: 1.38.00pre2)
148 - Fix: Remove debug print
149 - New: Section SMTP protocol violation (smtpprotocolviolation)
150 - Change: Removed section "toomanyerrors", merging it into new section
151   smtpprotocolviolation.
152 - Fix: Handle "improper command pipelining ..." messages in new section
153   smtpprotocolviolation.
154 - Fix: Ignore more debug lines and miscellaneous canonicalization.
155
1562009-06-29 (version: 1.38.00pre1)
157 - New: Support milter-hold (aka: "quarantine") and milter-discard lines.
158   Stats are located in "hold" and "discarded" sections, respectively.
159   Requested by: Gary Casterline;
160 - Fix: Perl v5.10 introduces tighter taint control in sprintf format
161   strings.  Perform strict data checking on $Opts{'ipaddr_width'} to
162   untaint it, as it is used directly as an sprintf() field width specifier.
163   Thanks: Dudi Goldenberg
164 - Fix: Some Policy-SPF lines were unmatched, due to log format change
165   in Mail::SPF v2.006, which changed "identify=mfrom" to "identity=mailfrom".
166   Thanks: Chris Burton
167 - Fix: Resolved several bugs in the Policy-SPF module: some missing return
168   return statements, which for certain unmatched log lines would both add to
169   the Unmatched list and increment a PolicySPF hit counter; a few older
170   log lines would show blank IP addresses.
171 - Fix: Postgrey whitelisted lines that did not include a host IP address
172   were reported as unmatched.
173 - Fix: Relax email address capture in to=, orig_to=, and from= fields in
174   log lines.
175 - Fix: Better diagnostic when limiter level is not specified on
176   the command line using the --limit option.  Eg:
177   "--limit rejectbody" v. "--limit rejectbody=10"
178 - Fix: Remove bogus --content_filter option from man page (feature not yet
179   implemented).  Thanks: David DeFranco
180 - Fix: Better handle "Delivery temporarily suspended: conversation with xxx timed
181   out..." deferred messages.
182 - Fix: Handle multi-word XYZ in "blocked using XYZ" in RejectRBL.
183   Thanks: Sergey Pylinsky
184 - Fix: Ignore lines from postlog service.
185 - Change: Detail level now included in Detail title
186 - Internal: Support variable hash key lengths, but using the special key
187   sequence of two ASCII bell's ("\a\a").  This removes the existing
188   requirement that dummy keys must be used at the end of the %Counts
189   accumulator hash.
190 - Internal: Test data generation
191
1922008-10-21 (version: 1.37.08)
193 - Fix: Saslauth messages were not being detected if the only field in a
194   smtpd "client=..." line was "sasl_sender=".
195
1962008-10-20 (version: 1.37.07)
197 - New: Support "Temporary lookup failure" temporary rejects.  New reject
198   limiter 'XXXrejectlookupfailure', where XXX is any of the set of
199   reject codes in effect.
200 - New: Support smtp_body_checks and smtp_*header_checks.
201   Requested by: Noel Jones
202 - Fix: Previous fix to support reload log line that includes postfix
203   version number broke previous postfix reload log lines.
204   Thanks: Armin T�ting
205 - Fix: Setting recipient_delimiter caused RE failure, due to missing
206   \Q \E quoting.  Thanks: Armin T�ting
207 - Fix: BCC action support from 1.37.06 had a "if" vs. "elsif" typo.
208   Thanks: Noel Jones
209 - Fix: Allow postgrey filter to handle absent recipient= field.
210   Thanks: Alexander Kolesnik
211 - Fix: Limiters were not case insensitive on the command line.
212 - Fix: Use of bare reject limiters did not set each reply code variant of
213   the given limiter after using --nodetail, resulting in no output for the
214   given section.
215 - Fix: Change Logwatch's OnlyService variable in the postfix-logwatch.conf
216   file to also capture postfwd and postgrey.  Thanks: Alex Schuilenburg
217 - Fix: Ignore more debug lines.
218
2192008-08-22 (version: 1.37.06)
220 - New: Handle message_reject_characters cleanup rejects.  New reject
221   limiter 'XXXrejectcontent', where XXX is any of the set of reject
222   reply codes in effect.
223 - New: Support BCC action from 2.6 experimental branch.  New limiter
224   'bcced'.
225 - Fix: Ignore "mapping DSN status" lines.
226 - Fix: Support reload log line including postfix version number.
227   Postfix snapshot 2.6-2008081
228 - Thanks: Noel Jones
229 - Fix: Ignore more debug lines.
230
2312008-08-19 (version: 1.37.05)
232 - New: Initial implementation of Postfwd reporting.
233   Requested by: Sahil Tandon
234 - Change: Undeliverable (address verification) section now
235   grouped by DSN, canonicalized host reply, domainpart, localpart,
236   and formatted host/hostip.  This dramatically cleans up this
237   section's output for systems that perform many address verifications.
238 - Fix: Postgrey lines were being ignored due to change made to
239   implement Ignore_Service.
240 - Fix: handle "status=undeliverable-but-not-cached" address verification
241   response,  which is coerced into a simple "status=undeliverable".
242   If there is any value in distinguishing the two status types, let me
243   known and I'll create a new limiter. Thanks: Gary Casterline
244 - Fix: missed conversion of keyword "next" to "return" in postfix_postsuper
245   routine after inline code was converted into the subroutine.
246
2472008-07-22 (version: 1.37.04)
248 - Fix: recognize "approximately" in TooManyErrors section messages
249   starting introduced in Postfix 2.6 20080621.  Thanks: Noel Jones
250 - Fix: Reset to level 0 the inadvertently changed EnvelopeSenders
251   and EnvelopeSenderDomains (in postfix-logwatch.conf).
252
2532008-07-18 (version: 1.37.03)
254 - Change: TimeoutInbound will include byte count if available;
255   default level changed to 1 to reduce noise.
256 - Change: some additional canonicalization is performed on
257   various "host XXX said: yyy" messages in sections like Deferrals.
258   Much of the "said" verbiage from some large mail houses is redundant
259   or excessive, and causes additional memory consumption.  If this
260   canonicalization presents problems, I may include an additional level
261   of detail to present the raw message.  Feedback welcome.
262 - Fix: Supplemental sections could not be re-enabled after using
263   --nodetail.
264 - Fix: Handle some additional RejectRBL variants, esp. the
265   "day old bread" list (dob.sibl.support-intelligence.net).
266   Thanks: Michael Monnerie
267 - Fix: Present the remote MTAs reply code/DSN, if available, at the
268   beginning of canonicalized "host XXX said: yyy" messages.
269   Thanks: Jorey Bump
270 - Fix: Provide remote MTAs SMTP reply code/DSN if available
271   in various Delay, Deferral, etc. reports.  Some additional
272   canonicalization is performed on various flavors of deferral
273   replies.
274 - Fix: recognize "approximately" in lost connection byte count
275   messages starting introduced in Postfix 2.6 20080621.
276   Thanks: Noel Jones
277 - Internal: Ignored lines are now placed into a list, instead of
278   hard coded into the code.  In the future, this will allow users
279   to configure ignore patterns without making code modifications.
280   In doing this, I discovered and reported a bug in perl (#56202),
281   but worked around the problem.
282 - Internal: move postsuper, panic, and fatal message processing into
283   their own subroutines.
284
2852008-05-30 (version: 1.37.02)
286 - Change: Some changes in Delays report. Now includes total delay
287   time as reported in delivery agent log entry delay=x.  Removed
288   leading numbers in row titles, and cleaned up the title names.
289   Also, reduced fields to 2 decimal places.
290 - New: By IP (permanent) Reject report controlled with ByIpRejects
291   limiter.  Disabled by default.
292 - Fix: Two minor fixes to PolicydWeight module: it was not the required
293   importing inc_unmatched, and ignore diagnostic "master: ..." lines.
294 - Fix: Eliminate some extraneous newline output.
295 - Fix: Ignore more debug log lines.
296
2972008-05-09 (version: 1.37.01)
298 - Change: level limiters are no longer unique command line options,
299   but are now parameters to the single option "--level" or "-l".
300   This reduces the number of command line options in the help list,
301   and simplifies the code added to support reject_reply_patterns.
302   For example, the config file level limiter $postfix_Sent = 2,
303   the command line option would be --limit sent=2 or -l sent=2,
304   rather than the previous --sent=2.  This also means the --no
305   variants for level limiters are gone (eg. --nosent; instead use
306   -l sent=0).  There is no change within the configuration files.
307   Limiters can still be abbreviated so long as they are unambiguous.
308 - Change: Section connectionlostoverload is removed, by being merged
309   into connectionlostinbound.
310 - Change: PrematureEOI is now AttrError, broadened to include errors
311   reading attributes from services.
312 - New: Support RFC 4954 Enhanced status codes (postfix 2.5+).
313 - New: Report "status=deferred (bounce failed)" messages under
314   Summary section "Bounce failed".
315 - New: Support postfix 2.6+ check_reverse_client_hostname_access
316   Includes new reject config variable: RejectUnverifiedClient.
317 - New: option --line_style specifies how to handle lines lengths
318   longer than max_report_width.  Options are "wrap", "full", or
319   "truncate" (default).  The older --detail >= 11 is equivalent
320   to line_style=full; line_style=truncate or line_style=wrap has
321   higher precedence and will dictate how long lines are handled.
322   Alternative options are --truncate, --wrap, or --full.
323 - New: The beginnings of a Top N config file is provided in
324   postfix-logwatch.conf-topn.  Suggestions and improvements welcome.
325 - New: single letter options for some long options; run with
326   --help to see list.  More may be added in the future.
327 - New: Option --ignore_services (config var $postfix_Ignore_Services)
328   provides a mechanism to ignore postfix/SERVICE log lines, where
329   SERVICE is a regular expression pattern.
330 - Fix: Support Anonymous TLS in TlsServerConnect (postfix 2.5+).
331 - Fix: Ignore output from "postfix status" command (postfix 2.5+)
332 - Fix: Ignore more debug log lines.
333 - Fix: When postsuper held more than one message in a given call,
334   the Hold count shown in the Summary section indicated how many
335   messages were held, but the Detail section showed how many
336   postsuper calls were made. Thanks: Stefan Jakobs
337 - Fix: Postgrey sender and recipient fields improperly reported
338 - Fix: Allow ":unknown" as an acceptable port in smtpd's "client=..."
339   log lines.  Occurs in pre-queue content_filter setup.
340   Thanks: Robert Brooks
341 - Fix: At detail > 10, log lines were truncated to max_report_width.
342 - Fix: Documentation cleanup.  Thanks: Chris Pepper
343 - Fix: Relax capture RE for resent-message-id which may contain
344   < or > chars.  Thanks: Stefan Jakobs
345 - Fix: Reason for deferral/bounce would sometimes be incorrectly
346   shown as unknown recipient.
347 - Fix: Better handle the trigger subject (SMTP_NAME_*) in discard,
348   filter, hold, redirect, and warn actions (eg. Client host, Sender
349   address, Recipient Address, Client certificate, etc.).
350 - Change: reduce length of some extended status codes for readability.
351 - Change: remove hard-coded "postgrey" from the syslog name pattern
352   matching code, and instead add it to the configuration variable
353   postfix_Syslog_Name.
354 - Internal: converted all Section key names to lowercase to avoid
355   silly case errors due to hash key case differences in Sections,
356   Opts, and Collecting hashes.
357 - Internal: debug output is now controlled by keywords.
358
3592008-05-09 (version: 1.36.13)
360   Final version skipped
361
3622008-01-14 (version: 1.36.13pre7)
363 - New: Support ETRN rejects (option: RejectEtrn).
364 - Fix: Include optional text in L1 output for header/body checks Hold
365   messages.
366 - Fix: Accept "unknown" as an IP in Connection rate limit messages.
367   Thanks: Stefan Jakobs
368 - Fix: Improve MxError captures
369 - Fix: Ignore "sql auxprop plugin ..." messages
370 - Fix: Ignore more debug_peer_level=2 messages
371 - Fix: Correct failure to ignore "connect to subsystem..." debug lines
372 - Fix: Add missing RejectVerify to config file
373
3742007-12-15 (version: 1.36.13pre6)
375 - Fix: in BounceLocal and EnvelopeSenderDomains, set null domain
376   and formatted host to '*unknown'.
377 - Fix: Move postfix_warning before postfix_cleanup, as some cleanup
378   warnings were caught as unmatched.
379 - Fix: An Accepted message is now triggered by smtpd "client=..."
380   and pickup "uid=..." log entries, instead of qmgr's "from=xxx,
381   size=nnn, nrcpt=nnn" log lines.  A message may have been accepted
382   during a previous time period, but delivery delays result in
383   multiple qmgr delivery attempts, resulting in over counting
384   Accepted messages.  Thanks: Stefan Jakobs
385 - New: Bytes delivered is now broken down by Bytes sent via SMTP,
386   LMTP, and forwarded, to be orthogonal with message counts.
387 - Fix: Resent messages no longer reduce the number of messages
388   accepted - this was a naive attempt at not counting, for example,
389   messages released and re-queued from a content filter's quarantine.
390
3912007-11-14 (version: 1.36.13pre5)
392 - New: Threshold limiting and Top N lists for every level in each
393   Detail section.  Every level in each section can now be limited
394   with minimum count thresholds and top N lists.  See the updated
395   README file, the comments in the postfix-logwatch.conf file, and
396   the new postfix-logwatch man page.  Requested by: Pavel Urban
397 - New: Rejects can now be categorized by reject reply code.  A new
398   option/variable "reject_reply_patterns" is a list of reject reply
399   code regular expressions, which are used for categorizing rejects.
400   This feature allows, for example, distinguishing 421 transmission
401   channel closes from 45x errors. (eg. 450 mailbox unavailable, 451
402   local processing errors, 452 insufficient storage).  The default
403   list is: "5.. 4.. Warn" which creates three groups of rejects:
404   permanent rejects, temporary failures, and reject warnings (as in
405   warn_if_reject).  Requested by: Noel Jones
406 - New: postfix-logwatch man page created (net yet complete)
407 - New: Support for all access(5) actions.  See the "Level Limiter
408   Options" section in the postfix-logwatch(1) man page, and "Common
409   access control actions" in postfix-logwatch.conf.
410 - New: Added envelope senders and envelope sender domains reports.
411   These are disabled by default.  Enable with level limiter options
412   --envelopesenders 1 and --envelopesenderdomains 1 (or 2 to
413   also see senders listed under domains).  See also the
414   postfix-logwatch.conf file.  Suggested by: Brendan
415 - Change: Uncomment all variables in the config file.  This should
416   help ensure the variables in the config file stay in sync with
417   those used in the source.
418 - Change: Merged sections SenderDelayNotification, DSNDelivered, and
419   DSNUndelivered into NotificationSent, with sub-sections indicating
420   the type of notification.  This gives the total number of sent
421   notifications in the Summary section, and the breakdown by type
422   of notification in the Detailed section.
423 - Change: Removed "msgs" prefix from several options: msgsdeferred,
424   msgsdelivered, msgsforwarded, msgsresent, msgssent, and msgssentlmtp
425   are now deferred, delivered, forwarded, resent, sent and sentlmtp.
426   The old options are still usable.
427 - Change: force --help output to 80 chars.
428 - Change: Taint mode is now on by default in standalone mode.  It is
429   disabled upon installation in logwatch mode, as logwatch fails with
430   taint mode enabled.
431 - Change: Set the primary key in tlsserverconnect/tlsclientconnect
432   options to type/cipher to reduce excessive level 2 output.
433 - Change: Reported values that cannot be determined or are unavailable
434   are prefixed with an asterisk (Eg. *unknown, *unspecified).
435 - Change: Warn section title 'Warn action logged' changed simply to
436   "Warned", to be consistent with other access/header_ and body_checks.
437   The option is --warned, but --warn is still acceptable.
438 - Fix: Significantly reduce memory footprint when detail < 5.
439 - Fix: Usage and --help now correctly show only detail section
440   level limiter options that are available.  Previously, summary-
441   only counts were also display as level limiter options.
442 - Fix: "too many errors after DATA" and "timeout after DATA" may
443   include a byte count, as in "(348 bytes)".  Thanks: John Beaver
444 - Fix: Ignore postgrey 'delayed ...' lines
445 - Fix: Allow logwatch --debug option to pass into postfix-logwatch
446 - Fix: configuration file reading code was not properly warning on
447   non-existent files
448 - Fix: "filter" actions were incremented on "redirect" actions
449 - Fix: Give more room to percentiles in delays percentiles table.
450   A 5 day delay is 432000.000 seconds, and the previous table width
451   was not sufficient.
452 - Fix: --show_sect_vars command line option inadvertently required an
453   argument; the name has been shortened to --sect_vars/--nosect_vars
454   and correctly no longer requires an argument.  The longer names
455   --[no]show_sect_vars work as well.  Thanks: Noel Jones
456 - Fix: Handle some unmatched connect to failures in section
457   ConnectToFailure.  Cleanup and consolidate several similar messages;
458   add additional detail at level 3.
459 - Fix: Increment postsuper Hold messages by the number of messages
460   placed on hold.
461 - Fix: Add "non-ESMTP response ..." messages to SmtpConversationError.
462   First level is now the general SMTP error description.
463 - Internal: Converted source to be package-based to allow code sharing
464   with amavis-logwatch.  The single-file executable is auto-generated
465   from the packages.
466 - Internal: internal gen_test_log function to create sample log data
467   for testing. Reads '#TD' comments from within postfix-logwatch.
468
4692007-10-16 (version: 1.36.13pre4)
470 - Fix: Handle messages "SSL_connect error to example.com: 0" and
471   "Cannot start TLS: handshake failure" by coercing into warnings
472   Thanks: Rob Sterenborg
473
4742007-10-15 (version: 1.36.13pre3)
475 - Fix: Handle "postmaster" DSNs
476 - Fix: Handle "discarding EHLO keywords:" (ignored)
477 - Internal: create bounce subroutine to handle bounce messages
478
4792007-10-05 (version: 1.36.13pre2)
480 - New: Initial support for postgrey (http://postgrey.schweikert.ch/)
481   Requested by: Sebastian Wolfgarten
482
4832007-10-05 (version: 1.36.13pre1)
484 - New: Support for policy-spf software postfix-policyd-spf-perl
485   Requested by: Nicodemo P. and Rob Sterenborg
486
4872007-10-05 (version: 1.36.12)
488 - New: support postfix 2.5 log changes (20071004, 20071003)
489 - Incompatible Change: Config variable/command line option name change:
490    * WarningHeader changed to Warn
491    * MsgsRedirected changed to Redirected
492    * ConnectionLost split into ConnectionLost{Inbound,Outbound}
493 - Incompatible Change: Distinguish inbound (smtpd) vs. outbound (smtp),
494   which replaces ConnectionsLost with ConnectionsLostInbound and
495   ConnectionsLostOutbound.  ConnectionsLostInbound includes number of
496   bytes received if the connection was lost during DATA.  Encouraged by
497   2.5 20071003 change in logging.
498 - New: Support for all header_checks(5)/body_checks(5) actions.  See
499   also postfix-logwatch.conf for "Common access control actions"
500 - New: Option show_sect_vars shows names of section configuration
501   variables/command line options in titles of detailed report sections.
502   This allows easy correlation of corresponding configuration file
503   variables/command line option for each section. [ Default: 0 ]
504 - Fix: catch postsuper's pluralized form of Delete message"s".
505 - New: handle "cannot load Certificate Authority data" as Misc. warning
506 - Fix: Makefile: no -D option to install in FreeBSD.  Use -d instead
507 - Change: ConnectionLostInbound now defaults to level 1 only
508 - Internal: Numerous code cleanups, re-factoring and restructuring
509 - Internal: Test data migrating to include the correct postfix service, as
510   internal code moves towards using the service name as an initial log
511   line match qualifier
512
5132007-09-13 (version: 1.36.11)
514 - Incompatible Change:  All TempRejectXXX and RejectWarnXXX options/config vars
515   have been renamed for easier identification in the code, and consistency.
516   Now, all Reject variants look like RejectXXXyyy, where XXX is the
517   given reject name (Helo, RBL, etc), and yyy is the optional reject type
518   of "Warn" (warn_if_reject) or "Temp" (4xx temporary rejects).
519   For example, the previously named RejectRelay, RejectWarnRelay and
520   TempRejectRelay are now named RejectRelay, RejectRelayWarn and RejectRelayTemp.
521   See the usage information or the .conf file to see the list.
522 - Fix: A %Counts accumulator must use the same number of keys consistently.
523   This error caused some totals to be wildly incorrect, and the fatal perl error:
524     "Can't use string ("XXX") as a HASH ref while "strict refs" in use ..."
525   Fortunately, this error only occurred with a specific set of data, which
526   seemed not too common.
527 - Fix: remove Temp and Warn variants of RejectHeader and RejectBody - they
528   don't exist.
529 - Fix: Add Temp variant of RejectMilter
530 - New: Add ProcessLimit section for 2.5 stress messages
531 - New: accommodate postfix patch which also logs HELO name in smtpd's
532   "QID: client=..." log entries.
533 - Thanks: Noel Jones
534
5352007-09-09 (version: 1.36.10)
536 - New: handle "reject: DATA from ... <DATA>: Data command rejected: ..."
537 - New: ignore "fingerprint=20:..." lines
538 - Thanks Farkas Levente
539
5402007-09-01 (version: 1.36.9)
541 - Fix: remove rooted path in md5 file
542 - Fix: Makefile install-logwatch rule was missing a parenthesis
543 - Fix: Makefile updates from Till Mass
544
5452007-08-31 (version: 1.36.8)
546 - Change: Include GPLv2 license
547 - Change: Include version number in tarball file name
548 - Internal: Move CVS log comments to Changes file
549
5502007-08-31 (version: 1.36.7)
551 - Fix: capture older postfix RCPT from RBL reject entries. Thanks
552   Hugo van der Kooij
553
5542007-08-15 (version: 1.36.6)
555 - Changed: for sorting purposes, lowercase localpart of rejected email addresses
556 - Change: Output help and version info on STDOUT for easier pipelines to a pager
557 - New: option --nodetail zeros out all detail levels, to more easily obtain
558   only specified detailed reports (eg: --nodetail --rejecthelo 1) will
559   only show a list of rejected HELOs in the details section.
560 - New: option --nosummary disables the summary section
561 - New: detailed section command line arguments can now be specified with the
562   prefix "no", to set the level to 0 (eg. --nomsgssent is equivalent to
563   --msgssent 0).
564 - Internal: split printReports into printSummaryReport and printDetailReport
565 - Internal: change variable Formats to the more obvious named Sections
566
5672007-08-03 (version: 1.36.5)
568 - Changed: rejected addresses collected by domain, then localpart
569 - New: delay percentiles report.  Config vars: show_delays and
570   delays_percentiles; command line --[no]delays
571 - Fix: Yes/True and No/False config values weren't being read properly
572   in standalone
573
5742007-08-01 (version: 1.36.4)
575 - New: option --config_file allows specifying a configuration file via
576   command line. Options in configuration file act as though they were
577   set on the command line in order, with earlier settings being over-
578   ridden by most recent settings.  Multiple config_file options may
579   be specified.
580 - Change: Summary title includes syslog_name in standalone mode
581 - Change: Remove some extraneous newlines
582
5832007-07-24 (version: 1.36.3)
584 - Refine anvil connection rate exceeded messages
585
5862007-07-13 (version: 1.36.2)
587 - Support FreeBSD (<facility.priority> precedes hostname in syslog)
588 - Thanks Clemens Fischer
589
5902007-07-10
591 - Ignore "nss_ldap: reconnected to LDAP server ..."
592 - Handle "discard: header/body: messages
593 - Thanks Jay Chandler
594
5952007-07-03
596 - Corrected some minor typos
597
5982007-06-08
599 - Changed titles shown for sender notifications of (non-)delivery
600   and delay
601 - Corrected some incorrect config file variable names.  Thanks: Nicolas
602
6032007-06-02
604 - Do not strip <> when address is '<>' in Illegal address syntax
605
6062007-06-01
607 - Changed warning output for smtpd messages:
608   "lost connection after CONNECT from unknown[unknown]".
609   Previous warning erroneously attributed this to pre-queue content
610   filter overloads, but the problem indicates a more general
611   smtpd overload.
612
6132007-05-31
614 - Fix bug which caused config file to be required in standalone mode
615
6162007-05-30
617 - Support delay_reject=no (debian: 426726)
618 - Ignore additional unmatched TLS debug messages
619 - Initial support for redirect messages
620 - Some corrected typos
621 - Thanks Jusin Pryzby
622
6232007-05-25
624 - Experimental: syntax to limit Top N level 1 output lines.  Variables
625   that control depth levels in detailed reports can be specified as
626   m.n, where m is the maximum level to output, and n specifies the number
627   of level 1 items output.   Eg: $postfix_MsgsSent=2.10, will output
628   the top 10 level 1 items, with each item providing 2 levels of detail.
629 - Protect interpolated recipient addresses in cleanhostreply with \Q \E
630 e Add zero-width assertions and use strict IP RE in bycount sort subroutine
631   to match IP addresses more reliably
632
6332007-05-09
634 - Ignore a few more policydweigh child or cache entries
635 - Escape metacharacters from being interpreted in recipient_delimiter
636 - Never split mailer-daemon, double-bounce, or when recipient_delimiter
637   is a "-" (dash) never split owner- or -request localparts
638
6392007-05-08
640 - Support for running in standalone mode (independent of logwatch)
641 - Renamed script to "postfix-logwatch" to avoid confusion when running
642   in standalone mode.  See the README.
643 - Add relay=virtual to "local" class for local vs. remote bounces
644
6452007-05-07
646 - Handle and report postfix/policydweight lines (postfix_PolicydWeight)
647 - Handle and report Host offered STARTTLS lines
648 - Generalize "maildrop: Unable to create a dot-lock at <path>" messages
649 - Corrected typo that prevented fatal errors from being output
650
6512007-04-26
652 - Consolidate similar MX errors
653 - set IP address to 127.0.0.1 when from=local, and reporting both host/hostip
654 - More cleanup (re-factor common code, replace most global variables with lexicals,
655   lowercase non-global variable names, shorten variable names, etc.)
656 - Capture postsuper hold messages
657
6582007-04-25
659 - Support postfix 2.5 TLS message changes (smtpd_tls_loglevel > 0)
660 - Move 4xx temporary rejects into their own section (experimental feature)
661
6622007-04-18
663 - Allow for hold messages that do not contain a recipient (Thanks John Wilcock)
664
6652007-03-26
666 - Lowercase recipient addresses in several Reject sections
667
6682007-03-22
669 - Accept spf.pobox.com URLs in Reject recipient address
670
6712007-03-21
672 - Handle spf lines from older version of postfix-spf, and spf.pobox.com URLs
673
6742007-03-20
675 - Capture and report postfix-spf lines
676 - New config variable postfix_PolicySPF
677
6782007-03-13
679 - Capture and report reject_unknown_reverse_client_hostname.
680   Thanks Michael M.
681
6822007-03-09
683 - Capture and report as config warning: "looking for plugins" NSF error
684
6852007-03-03
686 - fix reject header|body RE to allow "local" as host/ip
687 - really ignore lines that don't match SyslogName;
688 - add inc_unmatched subroutine for easier debug of unmatched lines
689
6902007-02-27
691 - Capture and summarize postfix-script output (starts, stops, refresh, etc.)
692 - Remove redundant chomps
693
6942007-02-26
695 - Fix problem in sort routine where IP addresses were being captured
696   anywhere in an output line for comparison via pack 'C4' - only
697   attempt IP comparison if an IP address is the start of an output line
698   Thanks: Ian
699 - Provide support for syslog_name in Postfix 2.4 via postfix.conf
700   variable postfix_Syslog_Name
701 - Classify PIX workarounds based on type (there are several)
702 - Change summary output criteria to check for any non-zero Totals
703
7042007-02-25
705 - Do not interpolate log lines into printf; they may contain % chars
706
7072007-02-17
708 - Ensure no output occurs when nothing is captured
709
7102007-02-15
711 - Place recipients and senders in their own keys, instead of combined
712
7132007-02-14
714 - Fix countdown bug in Deliveries, as ncrpt does not account for always_bcc
715
7162007-02-14
717 - Make reject and warn_if_reject distinct sections
718 - Track Qids to properly report messages and bytes sent / accepted
719 - Also track messages deferred (each of which may have many deferrals)
720 - Consider reject VRFY a reject and accumulate in reject totals
721 - Move header/body reject code in with the rest of the reject code
722 - Move 'MAIL from' reject code in with the rest of the reject code
723 - Remove unused variable
724 - Print row heading separator lines only when appropriate
725 - Move printing of report headings into printReports
726 - Change Sent header to Sent via SMTP (orthogonal to Sent via LMTP)
727
7282007-02-09
729 - Better processing of remote server "host...said" replies
730 - Made maximum report width configurable in postfix.conf
731 - All lines in report now obey max report width
732
7332007-02-07
734 - Changed all From -> To lines to To <- From.  From address is often bogus
735   and To is more interesting to see.
736
7372007-02-06
738 - Added new configuration variable "postfix_Recipient_Delimiter", which
739   can be set to match the postfix variable "recipient_delimiter".
740   When set, allows Delivered and Sent reports to be grouped by
741   email addresses minus their address extension.
742 - Liberalized the RE for capturing VFRY rejects
743 - Reverted change of primary SASL authenticated messages; primary
744   key is once again User, followed by Method.  Unknown is reported
745   when these keys are not available.
746 - Created a SASL authenticated relayed messages which hits with
747   sasl_sender is present in smtpd messages
748 - Split orig_to email addresses into a subkey.  Allows reports
749   to be grouped by primary "to" address, instead of various aliases.
750 - Move Host/HostIP into their own keys for Bounce Remote section
751 - For Pix Workaround section, format HostIP / Host the same as others
752 - Add 'o' option where missing in REs
753 - Fix configuration variable importing
754
7552007-02-03
756 - Added VFRY reject section
757 - Changed primary key for SASL authentication section to IP/hostname,
758   as any of sasl_{method,sender,user} may be absent
759 - Added RFC 3463 DSN code messages to bounce/deferred sections
760 - More parsing of various "host...said" remote server messages
761 - Add Sent via LMTP section, removing lmtp-delivered mail out of Delivered.
762   Allows users with lmtp-based content filters to avoid double counting
763   (but only for message counts; byte counts are still about 50% too large).
764   Config variable postfix_MsgsSentLmtp controls display
765
7662007-01-28
767 - Added pre-queue content-filter overload section
768 - Reworked Bounce (local/remote) and Deferred sections
769 - Fixed several reversed captures of Host and HostIP
770 - Format Host and HostIP in Numeric hostname section
771 - Thanks: Mike Horwath
772
7732007-01-28
774 - Made Reason the primary key in Deliverable/Undeliverable 'sendmail -bv' tests
775 - Modified re_DSN RE to capture DSNs missing 3 number response code
776 - Enhanced SASL authenticated messages to capture missing log lines
777 - Added milter-reject section
778 - Updated 'Reject server configuration error' RE for older postfix versions
779 - Fix copy/paste error which caused use of incorrect variable in bad size limit
780 - Add Concurrency limit reached section
781 - Add "maildrop" to the list of relay's considered local in Bounce section
782
7832007-01-23
784 - Aggregate recipient/sender address verification lines (Thanks Harald Geiger)
785 - Uppercase message in reject recipient section
786
7872007-01-22
788 - Update REs to allow null sender in sender addresses
789
7902007-01-19
791 - Capture and summarize "triggers FILTER" messages (Thanks Eray Aslan)
792 - Fix overly permissive Server configuration error RE (Thanks Harald Geiger)
793 - Add "Server configuration error" rejects to Reject totals
794 - Add "Insufficient system storage" rejects to Reject totals
795 - Make RejectSize report consistent with others
796
7972007-01-17
798 - Update IP RE to support IPV6	(Thanks Harald Geiger)
799 - Aggregate reject recipient address caused by SPF (Thanks Harald Geiger)
800
8012007-01-16
802 - Made Reject HELO/EHLO report consistent with others: demoted Helo=xxx
803   string (Thanks: Jorey Bump)
804 - Fixed incorrect TotalRejects summation (typo)
805 - "Accepted" / "Rejected" summation is no longer based on "Connection";
806   now Total = Accepted + Rejected
807   * Client may or may not close connection properly after reject
808   * Multiple rejects for single connection can occur
809 - ConnectToFailure header incorrectly indicated connection was "inbound"
810 - Included Makefile for ease of installation during this testing phase (Thanks: Jorey Bump)
811
8122006-12-16
813 - Add pcre map warnings
814 - Reordered headings to produce more obvious correlation with percentage breakdowns
815 - Second key sort is now the illegal address in illegal address in SMTP command
816 - More optimization of log entry capturing
817 - Added Sent category capturing outbound SMTP connections
818   requires modified /usr/share/logwatch/default.conf/services/postfix.conf or
819   /etc/logwatch/conf/services/postfix.con
820 - Added ability to control max print depth on a per section basis
821 - Renamed Received to Accepted (to indicate accepted for delivery, and better opposite of Reject)
822   NOTE: Accepted shows less than that of pflogsumm's Received, which incorrectly
823   increments rejected messages
824 - Reduce Accepted by Deferred and Resent, which cause double counting
825 - Removed erroneous a-z in RE for capturing QIDs
826 - Added Panic section for postfix panic messages
827 - Fixed bug which failed to increment watchdog timers
828 - Started work on better debug capability
829
8302006-12-13
831 - Removed extra blank line for Detail <= 5
832 - Filter many more debug lines
833 - Catch and group additional warning and fatal messages
834
8352006-12-12
836- Made reject header/body output consistent with each other
837- Sort reject header/body first by recipient address, for tighter groupings - reject reason is typically random
838- Trimmed excess whitespace in reject header/body reasons
839- Added extra line between level 1 headings
840- Group SASL authenticated messages by sasl_username
841- Filter TLS and SASL debug messages (smtpd_tls_loglevel = 2)
842
843Rewrite by Mike Cappella (MrC)
844Revision 1.29  2007/01/27 20:21:46  mrc
845  - Provide more useful information and summaries
846  - Provide increasing detail as requested via --detail
847  - Provide ability to configure per section maximum detail
848  - Optimize and combine the numerous REs
849  - Capture and summarize many more log lines
850  - Pin important errors to top of report
851  - Sort by hits, IP, and lexically
852  - Handle IPv6 addresses
853  - Generalize log line capturing and reporting
854  - Eliminate excessive copy/paste reporting code
855  - Requires updated postfix.conf file
856  - Thanks: Eray Aslan, Jorey Bump, Harald Geiger, Bill Hudacek,
857    Frederic Jacquet, Geert Janssens, Leon Kolchinsky, Rob Myroon
858
859Revision 1.28  2006/12/15 06:24:49  bjorn
860Filtering "sender non-delivery notification", by Ivana Varekova.
861
862Revision 1.27  2006/12/15 05:00:41  bjorn
863Filter all held message logs, by Hugo van der Kooij.
864
865Revision 1.26  2006/10/20 16:51:50  bjorn
866Additional matching of sasl messages, by Willi Mann.
867
868Revision 1.25  2006/08/13 21:25:55  bjorn
869Updates to work with the Postfix 2.3.x series (due to log format changes),
870by Mike Cappella.
871
872Revision 1.24  2006/03/22 17:43:46  bjorn
873Changes by Harald Geiger:
874- ignore additional statistics: messages (Postfix 2.2)
875- replaced several 5xx Codes by [0-9]+
876  (main reason is to make them match on 4xx if in soft_bounce=yes mode)
877- a more generic "Client host rejected" reporting
878- changed "Messages rejected:" to "Messages rejected from sender:"
879
880Revision 1.23  2005/12/19 15:47:47  bjorn
881Updates from Mike Cappella:
882  - Catches some of the Unknown Users messages from newer versions of postfix
883  - Consolidates a couple of REs
884  - Adds a cumulative total to each of the Unknown users and Header content rejection headers
885  - Adds a Body content rejection section
886
887Revision 1.22  2005/11/22 18:30:47  bjorn
888Detecting 'virtual alias table', by Kevin Old.
889
890Revision 1.21  2005/08/23 23:54:38  mike
891Fixed typo probably from Roland Hermans -mgt
892
893Revision 1.20  2005/07/25 22:26:28  bjorn
894Added "Sender address" to "554 Service unavailable" regexp, by Who Knows
895
896Revision 1.19  2005/04/22 13:48:28  bjorn
897This patch catches (un)deliverable messages and many more, which were
898missing until now on mu new postfix-2.1.*, from Paweł Gołaszewski
899
900Revision 1.18  2005/04/17 23:12:28  bjorn
901Patches from Peter Bieringer and Willi Mann: ignoring more lines and
902some blank spaces
903
904Revision 1.17  2005/02/24 17:08:05  kirk
905Applying consolidated patches from Mike Tremaine
906
907Revision 1.7  2005/02/16 00:43:28  mgt
908Added #vi tag to everything, updated ignore.conf with comments,
909added emerge and netopia to the tree from Laurent -mgt
910
911Revision 1.6  2005/02/13 23:50:42  mgt
912Tons of patches from Pawel and PLD Linux folks...Thanks! -mgt
913
914Revision 1.5  2004/10/06 21:42:53  mgt
915patches from Pawel quien-sabe -mgt
916
917Revision 1.4  2004/07/29 19:33:29  mgt
918Chmod and removed perl call -mgt
919
920Revision 1.3  2004/07/10 01:54:35  mgt
921sync with kirk -mgt
922
923Revision 1.13  2004/06/23 15:01:17  kirk
924- Added more patches from blues@ds.pg.gda.pl
925
926Revision 1.12  2004/06/21 14:59:05  kirk
927Added tons of patches from Pawe? Go?aszewski" <blues@ds.pg.gda.pl>
928Thanks, as always!
929
930Revision 1.11  2004/06/21 13:42:02  kirk
931From: Matthew Wise <matt@oatsystems.com>
932This is more of a suggestion than a true patch submission. On a busy
933postfix server the messages sent by section is really long and not
934helpful. This patch finds and lists the top 10 senders by number of
935messages.
936
937Revision 1.10  2004/06/21 13:41:04  kirk
938Patch from rod@nayfield.com
939
940Revision 1.9.1 2004/02/22 16:44:01 rod
941Added patch from rod@nayfield.com
942
943Revision 1.9  2004/02/03 03:25:02  kirk
944Added patch from quien-sabe@metaorg.com
945
946Revision 1.8  2004/02/03 02:45:26  kirk
947Tons of patches, and new 'oidentd' and 'shaperd' filters from
948Pawe? Go?aszewski" <blues@ds.pg.gda.pl>
949
950Revision 1.7  2003/12/15 18:35:03  kirk
951Tons of patches from blues@ds.pg.gda.pl
952
953Revision 1.6  2003/12/15 18:09:23  kirk
954Added standard vi formatting commands at the bottom of all files.
955Applied many patches from blues@ds.pg.gda.pl
956
957Revision 1.5  2003/12/15 17:45:09  kirk
958Added clamAV update log filter from lars@spinn.dk
959
960Revision 1.4  2003/11/26 14:36:30  kirk
961Applied patch from blues@ds.pg.gda.pl
962
963Revision 1.3  2003/11/18 14:04:05  kirk
964More patches from blues@ds.pg.gda.pl
965
966Revision 1.2  2003/11/18 04:02:21  kirk
967Patch from blues@ds.pg.gda.pl
968
969Revision 1.1  2003/11/03 04:49:18  kirk
970Added postfix filter from Sven Conrad <sconrad@receptec.net>
971
972Revision 1.1  2002/03/29 15:32:14  kirk
973Added some filters found in RH's release
974
975Revision ???  2000/07/12 Simon Liddington <sjl@zepler.org>
976converted from sendmail to postfix Sven Conrad <scon@gmx.net>
977added unknown users, relay denials
978
979Revision 1.1  2003/03/21 21:10  sven
980Initial revision
981filters all postfix/<process> messages
982