| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
bounce processor. Note that one thing this does not do is implement any of
the policy around bounce scores. It "merely" cleans up all the crud in the
BounceRunner, and all the logic around registering bounce events. This means
the bounce runner can actually be enabled again. More code needs to be
written to process bounces events occasionally.
Details:
* maybe_forward() moved to app/bounces.py, and it can now discard the
message, forward it to the list administrators (moderators + owners), or
site owners. See UnrecognizedBounceDisposition.
* scan_message() always returns a set of addresses.
* The DSN bounce detector is cleaned up.
* An IBounceProcessor utility is added.
* IBounceEvents are added, with database support.
* bounce_unrecognized_goes_to_list_owner -> forward_unrecognized_bounces_to
* bounce_processing -> process_bounces
* ReopenableFileHandler.filename is exposed as a public attribute. This aids
in testing.
* Fix the signature of UserNotification.__init__() to be more PEP 8 compliant.
* Change the OwnerNotification.__init__() signature to take a roster object
instead of `tomoderators`. When the roster is None, the site owner is used
instead.
* Fix the default style setting; s/personalization/personalize/
* BounceMixin is gone, baby gone.
* Add tests for the OutgoingRunner.
* make_testable_runner() can now take a predicate object, which can change how
often the runner goes through its main loop. Use this e.g. to go through
only once when a message does not get dequeued.
* A new LogFileMark helper for testing messages to a log file.
|
| | |
| |
| |
| | |
* Clean up the DSN bounce processor.
|
| | |
| |
| |
| |
| | |
* Finally get rid of BounceMixin
* Test the simple case where the mailing list does no bounce processing.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add an additional option for unrecognized bounce disposition: send it to the
site administrators.
* Move maybe_forward() from src/mailman/queue/bounce.py to
src/mailman/app/bounces.py, refactor and add tests.
* Add a LogFileMark class to help with tests that want to check the output to
a log file.
* OwnerNotification gets a better signature. Instead of tomoderators, the
last argument is a roster to send the notification to. If roster is None,
then the notification goes to the site administrators.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
and over just the unprocessed events.
* In the outgoing queue runner, work out the logic for when
SomeRecipientsFailed with permanent failures in a probe message.
|
| | |
| |
| |
| |
| |
| | |
raised during the delivery function.
Modify the ReopenableFileHandler so that the filename is a public attribute.
|
| |/| |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
* Fix obvious typo in __init__(). How can we get Storm to help us with this?
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| | |
* Use m.u.datetime.now() instead of datetime.now()
* Add a predicate argument to make_testable_runner() so that we can e.g. pass
in a function that causes the queue runner to run only once.
* Minor improvement to get_queue_messages() so that it doesn't need a lambda.
|
| | |
| |
| |
| | |
* Improve documentation for Enum Storm type.
|
| | |
| |
| |
| | |
* Add BounceContext enum
|
| |/ |
|
| | |
|
| |
|
|
| |
message bounces. This completes the refactoring of probes for MM3.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
* Move get_verp() to class-based for easy overridding. Hook up StandardVERP
but not yet ProbeVERP.
* Use uuid.uuid4() to get unique id.
|
| | | | |
|
| | |/
|/|
| |
| | |
to the timeout value you want.
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* Move VERP header extraction to mailman.app.bounces, and ports the
implementation to the get_verp() function.
* Restore the [mta] verp_regexp value which got lost along the way.
* Move mailman.email.utils to mailman.utilities.email and add a test for
split_email()
* Move specialized_message_from_string() from test_documentation to
mailman.testing.helpers.
|
| |
|
|
| |
* Post release version and NEWS file tweaks.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
in a merge mistake. Also, make the tests pass <wink>.
Also, refactor find_components() into a separate function scan_module() so
that we can just extract the components from a single module.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
other bounce detector pass.
|
| |/ |
|
| | |
|
| |
|
|
| |
control.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
the REST API. (LP: #643949)
* New resource path in REST API: /addresses/<email>/memberships gets all the
memberships for a given email address.
* In the REST API, PUTting or PATCHing a list configuration now returns a 204
(No Content) success code instead of a 200 success code with an empty body.
* When a user is subscribed with their preferred address, changing the
preferred address also changes all subscriptions.
* When a user is subscribed with a specific address, their subscription can be
changed to any verified address they control.
* Use a new naming scheme for doctests with multiple mailing lists.
|
| |
|
|
|
|
|
|
| |
* ISubscriptionService.join(): address -> subscriber. This is not backward
compatible with the previous API!
* Add get_user_by_id() to the IUserManager interface. It was already
implemented, but the interface was missing the definition.
* MissingUserError: new exception, purely for the REST API.
|