Email bounce detectors.
The ``flufl.bounce`` library provides a set of heuristics and an API for
detecting the original bouncing email addresses from a bounce message. Many
formats found in the wild are supported, as are VERP_ and RFC 3464 (DSN_).
.. _VERP: http://en.wikipedia.org/wiki/Variable_envelope_return_path
.. _DSN: http://www.faqs.org/rfcs/rfc3464.html
Copyright (C) 2004-2014 by Barry A. Warsaw
This file is part of flufl.bounce.
flufl.bounce is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, version 3 of the License.
flufl.bounce is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with flufl.bounce. If not, see <http: www.gnu.org="" licenses=""/>.
Barry Warsaw <firstname.lastname@example.org>
with additional help from Mark Sapiro <email@example.com>
NEWS for flufl.bounce
* Added recognition for a kundenserver.de warning to simplewarning.py.
* Stop using the deprecated `distribute` package in favor of the now-merged
* Stop using the deprecated `flufl.enum` package in favor of the enum34
package (for Python 2) or built-in enum package (for Python 3).
* Prune some artifacts unintentionally leaked into the release tarball.
* Added recognition for a bogus Dovecot over-quota rejection sent as an MDN
rather than a DSN. (LP: #693134)
* Tweaked a simplematch regexp that didn't always work. (LP: #1079254)
* Added recognition for bounces from mail.ru. Thanks to Andrey
Rahmatullin. (LP: #1079249)
* Fixed UnicodeDecodeError in qmail.py with non-ascii message. Thanks
to Theo Spears. (LP: #1074592)
* Added recognition for another Yahoo bounce format. Thanks to Mark
Sapiro. (LP: #1157961)
* Fix documentation bug. (LP: #1026403)
* Document the zope.interface requirement. (LP: #1021383)
* Add classifiers to setup.py and make the long description more compatible
with the Cheeseshop.
* Other changes to make the Cheeseshop page look nicer. (LP: #680136)
* setup_helper.py version 2.1.
* Fix TypeError thrown when None is returned by Caiwireless. Given by Paul
Egan. (LP: #917720)
* Port to Python 3 without the use of `2to3`. Switch to class decorator
syntax for declaring that a class implements an interface. The functional
form doesn't work for Python 3.
* All returned addresses are bytes objects in Python 3 and 8-bit strings in
Python 2 (no change there).
* Add an additional in-the-wild example of a qmail bounce. Given by Mark
* Export `all_failures` in the package's namespace.
* Fix `python setup.py test` so that it runs all the tests exactly once.
There seems to be no portable way to support that and unittest discovery
(i.e. `python -m unittest discover`) and since the latter requires
virtualenv, just disable it for now. (LP: #911399)
* Add full copy of LGPLv3 to source tarball. (LP: #871961)
* Fixed MANIFEST.in to exclude the .egg.
* Fixed licenses. All code is LGPLv3.
* Initial release.
* Provide a nicer interface for detector modules. Instead of using the magic
empty tuple returns, provide three convenience constants in the interfaces
module: NoFailures, NoTemporaryFailures, and NoPermanentFailures.
* Add logging support. Applications can initialize the `flufl.bounce`
logger. The test suite does its own logging.basicConfig(), which can be
influenced by the environment variable $FLUFL_LOGGING. See
flufl/bounce/tests/helpers.py for details.
* Initial refactoring from Mailman 3.
TODO: Brief introduction on what you do with files - including link to relevant help section.