postconfirm (0.42.0) ietf; urgency=high

  * Added a check on the sender address during dmarc-reverse processing,
    requiring that the sender is whitelisted or has a confirmed address.

  * Changed the logging of dmarc-reverse processing to use a more compact
    log line format, and commented out some debug logging statements.

  * Added exception catching and loggin for failures to open smtp sessions
    to the configured server and port.

  * Fixed a log writing bug.

 -- Henrik Levkowetz <henrik@levkowetz.com>  09 May 2018 14:04:31 -0700

postconfirm (0.41.5) ietf; urgency=high

  * Fixed dmarc_reverse() to not re-send to other addresses than the 
    indicated recipient.

 -- Henrik Levkowetz <henrik@levkowetz.com>  20 Apr 2018 05:04:44 -0700


postconfirm (0.41.4) ietf; urgency=high

  * Fixed a bug in dmarc_rewrite(), where the return values from
    email.utils.getaddresses() was not handled properly.

  * Tweaked some setup error messages

 -- Henrik Levkowetz <henrik@levkowetz.com>  01 Mar 2018 06:47:58 -0800

postconfirm (0.41.3) ietf; urgency=high

  * Added warnings on failure for some post-install actions.

  * Changed the interface to accept multiple recipients when given on the
    command line (for use with dmarc-rewrite).  Changed dmarc-rewrite to
    accept multiple recipients, and renamed the recipient argument for other
    functions that can accept recipient lists.  

  * Changed the -e argument to log arguments to syslog and not exit.

  * Reverted an earlier change of socket ownership handling.

 -- Henrik Levkowetz <henrik@levkowetz.com>  21 Feb 2018 08:29:30 -0800

postconfirm (0.41.2) ietf; urgency=high

  * Added and --echo argument to echo back sys.argv.  Rewrote the logic to 
    find sender and recipient, in order to not throw out SENDER and RECIPIENT 
    in environment when they are set to nothing, which in some circumstances 
    can be valid.

  * Don't enforce uid and gid  on socket in foreground mode, to make 
    testing easier.

  * Corrected the trove classifier for development status.

 -- Henrik Levkowetz <henrik@levkowetz.com>  16 Feb 2018 04:28:30 -0800

postconfirm (0.41.1) ietf; urgency=high

  * Changed default dmarc-rewrite %-encoding character from '%' to '=', and 
    made it configurable.

 -- Henrik Levkowetz <henrik@levkowetz.com>  15 Feb 2018 09:57:40 -0800

postconfirm (0.41.0)

  This the first release uploaded to pypi.python.org, for more standardised
  installation using pip.  It's still not expected to be ready for beta use,
  but installation on the IETF servers should be easier this way.

  The essensial feature of this release is the ability to do experimental
  dmarc rewrites, both for outgoing mailman list messages, and to handle
  replies coming in to the rewritten addresses.  From the commit log:

  * Added dmarc rewrite functionality to postconfirmd.  Also various 
    accumulated tweaks and changes.

  * Refined setup, in preparation for alpha release to pypi.

  * README updated to indicate that this is an alpha release.

  * Refined mailman interface wrapper, with conditional filter actions.

  * Added some new config defaults.  Fixed an issue with the help display.  
    Updated imports.  Added chown for the socket.

  * Refactored service.py to permit multiple actions.  Added option 
    parsing.  Added bounce handling, but commented out.  Added dmarc handling.  
    Added comprehensive docstring for --help messages.

  * Updated the docstring.  Added default config for dmarc.

  * Tweaked sockserver output to straghten multiple lines into one.

 -- Henrik Levkowetz <henrik@levkowetz.com>  14 Feb 2018 16:01:53 +0000


postconfirm (0.40)

  * Added checking of the mailman list archive flag before adding the
    Archived-At: header field.

  * Added a mailman_dir config option, in order to be able to import
    the python mailman libs even if not on the regular python path.

  * Fixed the -s / --socket option, to make it take an argument as intended.

  * Changed the handling of sys.stdout and sys.stderr when running in foreground
    mode -- they should not go to syslog in that case.

  * Added reading of mailman listinfo for all mailman lists on startup and
    on receipt of SIGHUP.

 -- Henrik Levkowetz <henrik@levkowetz.com>  20 Jan 2017 10:36:45 +0100

postconfirm (0.39)

  * Added support for the Archived-At: header field for the IETF MailArchive
    utility

 -- Henrik Levkowetz <henrik@levkowetz.com>  10 Feb 2014 21:28:27 +0100

postconfirm (0.38)

  * Added BATV (draft-levine-smtp-batv) support.

 -- Henrik Levkowetz <henrik@levkowetz.com>  20 Mar 2010 16:49:50 -0700

postconfirm (0.37)

  * Tweaked the log message for dropped bulk messages

  * Added detection of auto-reply messages which contain a valid
    confirmation code in the body of the message, but not in the
    subject line.

 -- Henrik Levkowetz <henrik@levkowetz.com>  25 Sep 2009 15:37:17 +0200

postconfirm (0.36)

  * Moved the bulk mail detection to after the whitelist check.  Some
    OK mail is also bulk mail.

  * Added logging of py module loading, indicating which file it comes from.

 -- Henrik Levkowetz <henrik@levkowetz.com>  25 Sep 2009 11:47:24 +0200

postconfirm (0.35)

  * Tweaked the wrapper to make the 'filter' action work

  * Added detection of bulk mail and a config file option to set
    a regex for the Precedence: header to detect bulk mail.

 -- Henrik Levkowetz <henrik@levkowetz.com>  24 Sep 2009 17:07:41 +0200

postconfirm (0.33)

  * Added a new action, 'filter', which forwards confirmed email to
    /usr/lib/sendmail instead of to mailman.  For use with filtering
    of alias addresses.

 -- Henrik Levkowetz <henrik@levkowetz.com>  31 May 2009 0:06:37

postconfirm (0.32)

  * Added spam flag test for mailman commands in the wrapper

 -- Henrik Levkowetz <henrik@levkowetz.com>  29 Sep 2008 9:23:49 +0200

postconfirm (0.31)

  * Removed duplicate log messages (when TimeoutError was raised).

  * Tweaked the wrapper script to not be sensitive to the domain name
    when comparing -owner@ and -bounces@ addresses.

 -- Henrik Levkowetz <henrik@levkowetz.com>  17 Sep 2008 10:42:00 +0200

postconfirm (0.30)

  * Added functionality to handle blacklist regexes.

 -- Henrik Levkowetz <henrik@levkowetz.com>  01 Sep 2008 10:06:29 +0200

postconfirm (0.29)

  * The timeout error messages in sockserver.py used a nonexistent function
    and never made it out.  Fixed.

 -- Henrik Levkowetz <henrik@levkowetz.com>  01 Sep 2008 10:06:29 +0200

postconfirm (0.28)

  * Changed handler timeout to 300s
    
  * Changed logic to catch confirmation messages also when somebody
    has been confirmed earlier, so as to release prior cached messages
    and not forward the confirmation messages to the list.

  * Adjusted log messages, to reduce the number of log messages in
    some cases, and add information in other cases

 -- Henrik Levkowetz <henrik@levkowetz.com>  30 Aug 2008 17:31:32 +0200

postconfirm (0.27)

  * Minor tweaks

 -- Henrik Levkowetz <henrik@levkowetz.com>  29 Aug 2008 11:12 +0200

postconfirm (0.26)

  * Added more timeouts to the daemon code, to catch the process
    deadlocks or resource waits which have been observed.

  * Added individual timeout handlers, to try to get proper timeout
    log messages specific to each timeout

  * Where appropriate, raise SystemExit on timeout to return a proper
    error code to the client

 -- Henrik Levkowetz <henrik@levkowetz.com>  29 Aug 2008 2:55:00 +0200

postconfirm (0.25)

  * Added logging of time consumed in the daemon service handler.

  * Fixed a bug where extraction of components from the confirmation
    string could fail.

  * Changed mail sending to only log on SMTP exception, rather than
    print traceback.

 -- Henrik Levkowetz <henrik@levkowetz.com>  11 Jul 2008 2:44:44 +0200

postconfirm (0.24)

  * Tweaked the log messages to give more information when a confirmation
    fails due to hash mismatch

  * Added regex whitelists.  These are *much* more costly than regular
    whitelist entries, so should be used sparingly.

  * Use a blank subject line if there is no Subject: header in the message,
    rather than throwing an exception.

 -- Henrik Levkowetz <henrik@levkowetz.com>  10 Jul 2008 2:16:52 +0200

postconfirm (0.23)

  * Tweaked log messages so that where empty addresses can occur, they
    are enclosed in <>.  Also some other log message tweaks.

  * Added case normalization: white- and black-lists are normalized when
    read, and sender addresses are normalized when compared with white-
    and black-lists, but otherwise left untouched.  This means that the
    confirmed file can still contain mixed-case addresses, for instance.

  * Added a check for the sender to be somebody before doing the other
    confirmation verification checks.

 -- Henrik Levkowetz <henrik@levkowetz.com>  02 Jul 2008 21:02:26 +0200

postconfirm (0.22)

  * Added blacklists (entries on these will never receive confirmation
    requests, so messages from them will just sit in the cache till they
    are removed by whatever periodic cache cleanout is implemented.

  * The internal sighup to re-read files did not go to the right process.
    Fixed; confirmations are now picked up and remembered on the next
    socket-handler process fork.

  * Some mailers apparently will break contigous non-whitespace character
    sequences in order to limit the lenght of header lines; this has the
    effect of inserting tabs or spaces in the confirmation hash or ID.
    Now deleting all embedded spaces in the confirmation subject components.

 -- Henrik Levkowetz <henrik@levkowetz.com>  02 Jul 2008 2:17:59 +0200

postconfirm (0.21)

  * wrapper: Updated the mailman wrapper script to not drop messages if the
    postconfirmd daemon is not running, or gives an error return different
    from the error code 1 which signifies that a confirmation request was
    sent.

  * sendmail.py: Stopped logging mail sending

  * service.py: Changed the confirmation subject pattern to accept 822 lines
    broken across lines.

  * service.py: Added SIGHUP handling, so a HUP will cause the daemon to re-
    read the whitelist and confirmed files

  * service.py: Short-circuited responses to blank and self.  No need to try
    to send out those.

  * Re-worked some of the logging, to make it more succinct.

  * Moved service setup to after the daemonization, to make the sighup handler
    available in the right process.

  * Took out the prerequisites part of the Makefile.  AMS is not running Debian,
    anyway, so this will not work anyhow.

 -- Henrik Levkowetz <henrik@levkowetz.com>  01 Jul 2008 22:29:35 +0200

postconfirm (0.20)

  * First released version.
    Known weaknesses:

       - Very limited installation instructions
       - Manpage needs elaboration
       - make install has a number of hard-coded paths, even if the
         daemon code has configuration variables which permit different
         installation
       - no make config, no automake support, not anything fancy to
         permit installation on different unices

 -- Henrik Levkowetz <henrik@levkowetz.com>  19 Jun 2008 15:02:07 +0200

postconfirm (0.10)

  * Project created

 -- Henrik Levkowetz 2008-05-23 14:07:34 CEST
