| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
IAddress.email and IAddress.original_address to IAddress.original_email. From
now on we'll use "address" to talk about the IAddress object and "email" to
talk about the textual email address.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now, nonmembers are represented by a separate roster of IMembers, the latter
which has grown a `moderation_action` enum. When that action is `defer`, then
the normal processing rules apply. Anything else and the `moderation` chain
is jumped to for a shortcut to moderation (which may include immediate
acceptance).
TODO: handle unregistered nonmembers.
Details:
* The member-moderation rule is renamed to just moderation, and handles both
members and nonmembers (though the latter must currently be registered).
* The moderation rule is moved up in the builtin chain. It is now checked
after `approved`, `emergency`, and `loop`, but before the normal moderation
checks. This means that nonmember postings will be (by default) held much
earlier.
* IMember.is_moderated is removed.
* IMember.moderation_action is added.
* IMailingList.default_member_moderation is removed.
* IMailingList.default_member_action and
IMailingList.default_nonmember_action are added.
* MemberRole.nonmember is added.
|
| | |
|
| |
|
|
|
| |
due to _() interpolation) and a few other problems that did not have
immediately obvious fixes.
|
| |
|
|
| |
Approve. LP: #557750
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
* Move DigestFrequency from mailinglist to digests.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Fix a few small typos in exception handlers.
* Move the initialization of the Zope Component Architecture into the first
initialization step. The only reason we couldn't do that previously was
because the domain object referenced the config, causing a circularity
problem. Refactor the Domain implementation to avoid that.
|
| |
|
|
| |
for bin/mailman unshunt.
|
| |
|
|
|
|
|
|
| |
* Give IMailingList a .domain attribute which looks up the IDomain for its
.host_name. This cleans up a lot of code.
* Add a test for the 'confirm' email command.
* Suppress blank lines in email command responses.
* Make the IDomainCollection a utility.
|
| | |
|
| |
|
|
| |
attribute. Add this for UserNotifications.
|
| |
|
|
|
|
| |
the to-outgoing handler. Putting it in the latter means that more delivery
vectors can take advantages of the same mechanisms. to-outgoing is now really
simple (but is it simple enough?).
|
| |
|
|
|
|
|
|
| |
* Add lots of debugging to the SMTP delivery chain
* Move the VERP calculation to the deliver module, since this is the central
place we do delivery. For example, when it was in to_outgoing, other routes
for injecting the message may not have been verp'd. to_outgoing is now
really simple.
|
| |
|
|
| |
package.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
s/recips/recipients/
|
| | |
|
| |
|
|
| |
IUserManager utility.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Add an IDomainManager and a global domain manager which can be gotten by
adapting the global config object.
Add an IDomainCollection interface for exposing the domain manager onto the
API.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
artifacts that don't exist. In that case, just skimp them rather than
complain.
Docstring style cleanup.
Allow for doctest layer specification in the package's __init__.py, defaulting
to SMTPLayer if not given. This is probably too coarse for long term use, but
it works for now.
Make sure pipelines.txt properly cleans up its digest; it must be flushed
after clearing.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Refactor the finding of components so that it's much easier to find and
register the ones that come with Mailman by default.
Move all the old cmd_*.py commands into the attic. These will eventually be
ported to the new framework.
|
| |
|
|
| |
directly.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
set. Make this possible by moving list_id to an attribute of the MailingList
object instead of hard-coding its calculation in cook_headers.py.
|
| |
|
|
|
|
|
| |
* Add an adapter from mailing lists to acceptable alias set. Use this instead
of the old acceptable alias interface, which is not removed.
* Add contentfilter table
* Add a bunch of missing docstrings
|
| |
|
|
|
|
|
|
|
| |
inject_message() grows a keyword argument dictionary which gets merged into
the message metadata.
Move NODELTA into the autorespond interface as ALWAYS_REPLY.
Convert the integer response values into the ResponseAction enum.
|
| |
|
|
|
|
| |
old pickle attributes.
Fix a typo in the datetime.py module.
|