| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
- Adds SMTP over SSL/TLS and STARTTLS support to the outgoing
delivery by spliting the Connection class into three separate
classes with logic for SMTP, SMTP over SSL/TLS and STARTTLS.
- The Delivery class loads the added configuratio values and
selects the appropriate connection based on the configured
protocol.
- This requires aiosmtpd at least 1.1a1 for tests to pass,
as SMTPS support was added there in:
https://github.com/aio-libs/aiosmtpd/commit/0d33554c4787e575b7dd31b574259c0876dcc9f8
|
| | |
|
| | |
|
| |
|
|
|
| |
Added more documentation on config.mailman.listname_chars.
Made a couple of minor tweaks.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes #255
As of Python 3.5, PEP 475 gets in our way. Runners with long time.sleep()'s
in their _snooze() method (e.g. the retry runner) will have their system call
implemented time.sleep() automatically retried at the C layer. The only
reliable way to prevent this is to raise an exception in the signal handler.
The standard run() method automatically suppresses this exception, meaning,
it's caught and ignored, but effectively breaks the run() loop, which is just
what we want.
The lmtp and rest runners implement their own run loops, so they also have to
handle this exception, by ignoring it.
|
| |
|
|
| |
Closes #214
|
| | |
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| |\ \
| |/
|/| |
|
| | | |
|
| |/ |
|
| |
|
|
| |
See !161
|
| |
|
|
|
|
| |
This allows the filtering to be done at the database level. It also
makes list pagination much more efficient, since the slicing is done at
the database level too.
|
| |
|
|
| |
* Rebased, cleaned up, and test improvement.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This merges the SubscriptionManager and UnsubscriptionManager into a
single SubscriptionManager implementation that handles both register()
and unregister(). This allows us to use direct class-based adaptation
instead of the more clunky getAdapter() API. We can also eliminate the
funky _get_workflow() implementation detail.
This has a couple of side-effects. .confirm() must lookup the token in
the pendings database and pull out the pending type, dispatching to the
proper class depending on the type, or raising a LookupError if the
token is None or there is no pendable associated with the given token.
This feels like an acceptable trade-off.
However, this *also* means that IWorkflowStateManager must lose its
'name' argument in its methods. That's because we won't actually know
the name until its too late. Honestly, the name wasn't providing much
value anyway (it was always the subclass's name), so losing that seems
fine too. The complication here is that the name was a primary key in
the 'workflowstate' table, so we need to add its removal in the database
migration.
|
| |
|
|
|
|
|
|
| |
* events
* notices
* handlers
Also, be sure to do only one `leave` command per email.
|
| | |
|
| |
|
|
| |
Also, document more APIs.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The new template system is introduced for API 3.1. See
``src/mailman/rest/docs/templates.rst`` for details.
|
| |
|
|
|
|
|
|
|
| |
* Add a version_info field which is a better way to do ordered
comparisions of the API version.
* All subresources now get their .api attribute set automatically, if
they are passed back through the ObjectRouter. No more fiddling with
context['api'] (unless of course, they don't make a roundtrip through
the main ObjectRouter loop.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Add documentation.
Extend ISubscriptionService interface.
|
| | |
|
| |
|
|
| |
Fix lots of import order errors discovered by the new plugin.
|
| |
|
|
| |
This allows us to import it in more places without threat of import errors.
|
| | |
|
| |
|
|
|
|
|
| |
mailman/core/errors.py is gone now. We had a duplicate base exception
which now always comes from mailman/interfaces/errors.py.
Obsolete/unused exceptions are remove. The other exceptions are moved
to better locations.
|
| |
|
|
|
| |
New subscription requests are rejected if there is already one pending.
With thanks to Anirudh Dahiya. (Closes #199)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Reorder some add_argument() parameters.
* Reword some help text.
* Reword some of the doctest language.
* Clean up whitespace.
* Minor coding style change in unittests.
* Add another unittest.
* Fix a docstring (not related to these change).
* Add NEWS.
|
| |
|
|
|
|
|
|
|
|
|
| |
Closes #176
Also:
* IMessageStore no longer raises a ValueError if the Message-ID already
exists in the store; it just returns None.
* The internal handle_message() function no longer takes a `preserve`
argument, since messages are never removed from the IMessageStore.
|
| |
|
|
|
|
|
|
|
| |
* Remove an unused import.
* Opportunistically remove ^Ls
* Add a missing interface attribute.
* Fix up some docstrings.
* Rename a parameter in an interface for clarity.
* Random code style cleanups.
|
| |
|
|
| |
This reverts commit 703fc135dfcd496a704562ddc263aa0f4f828de9.
|
| | |
|