MaildropHost version and change information

  MaildropHost 1.17 (2006/04/29)

    * Bugs fixed

      - the maildrop daemon used to read in every mail file in the spool
        before deciding how many to send (MAILDROP_BATCH setting), which
        could fill up all memory if the messages are very large and the
        number of recipients very high. Now we only ever read in files up
        to the MAILDROP_BATCH setting. (patch by Maik Jablonski)

      - Squashed a deprecation warning in the Email unit tests (patch
        by Chris Withers)

      - Ensured that unit tests will use their own temporary spool and
        not the spool set up using the configuration file (patch by
        Chris Withers)


  MaildropHost 1.16 (2006/03/19)

    * Bugs fixed

      - The ADD_MESSAGEID flag was handled incorrectly, leading to message
        IDs being added regardless of its settings (Thanks to Maik
        Jablonski for http://www.dataflake.org/tracker/issue_00493)

      - Add a warning to config.py: Turning on message ID generation can
        seriously slow down message creation since it involves a DNS lookup
        (http://www.dataflake.org/tracker/issue_00495 by Marc Mare).


  MaildropHost 1.15 (2006/02/22)

    * Bugs fixed

      - Change the way the email objects are constructed to avoid
        problems with a loss of an instance attribute seen before.

      - Document the fact that Windows is not supported for the
        maildrop daemon script.


  MaildropHost 1.14 (2006/02/08)

    * Features added

      - A new configuration option named ADD_MESSAGEID can be used to
        have the MaildropHost automatically add a Message-Id header
        (Inspired by http://www.dataflake.org/tracker/issue_00450, 
        posted by Gael Le Mignot)

      - It is now possible to monitor more than one spool directory
        with the maildrop daemon. If the configuration option
        MAILDROP_SPOOL is a semicolon (;)-separated value, the maildrop
        daemon will monitor all of them. If the config file is read in
        by the MaildropHost code itself then only the first spool
        directory will be used.

    * Others

      - Some code cleanup/reorganization. Some settings can now be 
        overridden easier for unittest purposes.


  1.13 (2005/09/10)

    * Bugs fixed

      - A wrong variable name in maildrop.py prevented the maildrop
        daemon from starting if MAILDROP_LOG_FILE was not set in 
        config.py

      - The unit tests could not correctly figure out which files in
        the spool directory were emails and which were unrelated
        artifacts.

      - To prevent DeprecationWarnings under Zope 2.8 and up, change the
        way the tests modules initialize Zope for testing 
        (http://www.dataflake.org/tracker/issue_00467, thanks to
        Timothy Heap)

      - To prevent ZODB-related deprecation warnings due to the changes
        in how a transaction is fetched and manipulated in code, more
        backwards-compatible import changes have been added. The tests 
        now run on Zope 2.7.x and 2.8.x without warnings.


  1.12

    * Features added

      - A new configuration setting called DEBUG_RECEIVER can be used to
        set one or more specific envelope receivers which will override the
        actual recipient(s) without changing any message headers contained
        in the message body itself. This is useful for testing and debugging
        scenarios where the tester wants to receive messages in specific
        mailboxes and eyeball them the way they would appear to the actual
        receiver.

      - Finally, some unit tests...

      - Thanks to another patch from Gaël at PilotSystems, it is now
        possible to specifically set the pidfile path and the logfile path.
        (http://www.dataflake.org/tracker/issue_00427)

    * Bugs fixed

      - A logic error in a conditional test could lead to the recipient
        address being split into single characters. Thanks go to 
        Simon Michael (http://www.dataflake.org/tracker/issue_00426)

    * Other

      - Upon instantiation the transactional mode will now always be 
        turned on. It is one of the main reasons for using the 
        software, anyway.
    
      - Replace usage of "1" and "0" as fake booleans with True and False
        in the MaildropHost module.

      - Store the email file path on non-transactional Email objects to aid
        cleanup in unit tests

      - Reformat code in maindrop.py slghtly

      - Replace some blank try/except statements with specific exceptions


  1.11

    This release was driven by the good folks at PilotSystems.
    Gaël Le Mignot sent in a large patch that included a few new useful
    features.

    * Features added

      - A new script to manipulate the maildrop daemon process modeled
        on apachectl is now included, it is called maildropctl

      - The location of the spool directory and the log/pid-directory can
        now be specified separately in the configuration if so desired.

      - A new configurable delay between feeding individual emails to the
        SMTP server has been added. The default is still "no delay" since
        it is most likely an unusual situation where a mail server really
        needs a delay to prevent overloading.


  1.10

    This release changes the way the maildrop daemon process is started.
    Command-line switches are no longer supported and all configuration
    is held in config.py. To start the daemon you must pass along the
    path to your config.py.

    This release was partly financed by Zope Corporation. They paid
    several hours of development to help make the maildrop daemon
    easier to use in a managed application environment, expand the docs
    and set up some testing facilities for maildrop. Thanks ZC!

    * Features added:

      - The maildrop daemon now supports both TLS (Transport Layer Security)
        and authenticated SMTP.

      - The maildrop daemon script no longer stays attached to the
        controlling terminal by default. It detaches correctly unless you
        set the DEBUG flag inside config.py to 1.

      - Start scripts for RedHat and SuSE are now provided. They work
        correctly with chkconfig/Yast2 and can be linked into /etc/rc.d 
        (SuSE) or /etc/rc.d/init.d (RedHat)

      - Added a small "testing harness" to allow creating test emails in 
        a controlled way that can then be worked on by the maildrop daemon.

    * Bugs fixed:

      - More small improvements to the start_maildrop and stop_maildrop
        scripts from Jan-Wijbrand Kolman
        (http://www.dataflake.org/tracker/issue_00399)

      - Headers that include newlines or line breaks for some strange
        reason are now cleaned up before formatting the message
        (http://www.dataflake.org/tracker/issue_00400 by Maik Jablonski)

  
  1.9

    * Bugs fixed:

      - Remove the hardcoded spool location in favor of a configuration
        inside config.py that can be reached/used by the rest of the
        code. The spool location is shown in the ZMI, too. Most of the
        work done by Jan-Wijbrand Kolman - thanks! (JTracker issue 398)


  1.8

    * Bugs fixed:

      - Address parsing in the maildrop script could get confused by commas
        inside an address. A solution as proposed by Maik Jablonski
        (JTracker issue 386) involves using the rfc822 module.

      - Fatal SMTP server reply codes will now be handled differently by the
        maildrop.py process: If it is clear a mail will not be deliverable
        it will be logged and then removed out of the spool. Previously it
        would remain in the spool and maildrop.py would keep attempting a
        delivery. Thanks go to Maik Jablonski for the patch (see
        http://www.dataflake.org/tracker/issue_00388)


  1.7
  
    * Bugs fixed:
    
      - MaildropHost dropped all mails at once in a single smtp-connection.
        Added support for batched mail-sending (only x mails per connection),
        so MTAs with limited allowed mails per connection won't complain and
        defer mails anymore (Maik Jablonski).
      
      - Fixed missing SMTP_PORT in "send-mail"-part of maildrop.py
        (Maik Jablonski).
      

  1.6

    As of this release the MaildropHost product is distributed under
    the terms of the ZPL (Zope Public License) version 2.1, which 
    brings it in line with the license Zope itself is distributed
    under and removes some licensing uncertainty.

    * Bugs fixed:

      - Become more unicode friendly with a simple patch contributed
        by Chris McDonough.


  1.5

    * Features added:

      - A single configuration file named "config.py" is now used to
        store configuration settings for the maildrop daemon. Some
        properties are imported by the MaildropHost module in order
        to make them visible (not changeable) through the web interface,
        such as what SMTP server is used, what port, what polling
        interval, etc.


  1.4

    * Bugs fixed:

      - Implemented a sortKey method for the TransactionalEmail class
        to satisfy a new ZODB requirement (JTracker issue 369 by Maik
        Jablonski)

      - Stop using os.tempnam for creating a temporary file name, it
        always spews warnings into the log.


  1.3

    * Features added:

      - Chris Beaven contributed patches and a start script for the
        mailer that will make it run on Windows (Tracker issue 262).


  1.2

    * Features added:

      - Finally added Zope Help System pages for everything

    * Bugs fixed:

      - Cleaned out ZMI screens, there were some old references 
        to the standard MailHost object.

      - Fixed a bug that would prevent sending of mail if
        the recipient list was already a string.

      - Some code cleanup and adding of comments in the code.


  1.1

    * Bugs fixed:

      - Avoid processing of mail messages if the transaction commit
        is only a subtransaction commit


  1.0

    * Features added:

      - MaildropHost objects can now run in transactional mode. 
        This causes the generated email objects to participate
        in the transaction machinery and do "the right thing"
        once it is certain that the transaction invoking the
        mail call has finished or if it has been aborted.


  1.0beta3

    * Bugs fixed:

      - Cleaned out a ton of unneeded imports (fixing a bug in the 
        process which was lamented in Tracker issue 167)
     
      - Corrected licensing terms


  1.0beta2

    * Bugs fixed:

      - Option for spool checking interval is now really obeyed.

    * Features added:

      - More extensive docs

      - Option list simplified

      - added stop script for mail spool checker

      - added sample mail file to demonstrate the file format


  1.0beta1

      First working code version

  
  0.5

      Started putting the files together

