| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
otherwise it rejects the message with a 550 error. Also, the LMTP server
adds the `X-Message-ID-Hash` header automatically. The `inject` cli
command will also add the `X-Message-ID-Hash` header, but it will craft a
`Message-ID` header first if one is missing from the injected text. Also,
`inject` will always set the correct value for the `original_size`
attribute on the message object, instead of trusting a possibly incorrect
value if it's already set. The individual `IArchiver` implementations no
longer set the `X-Message-ID-Hash` header.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
postings go through the `posting_chain` while messages to owners to through
`owners_chain`. The default `built-in` chain is renamed to
`default-posting-chain` while the `built-in` pipeline is renamed
`default-posting-pipeline`.
* Schema changes:
- start_chain -> posting_chain
- pipeline -> posting_pipeline
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- When doing individual deliveries, insert a 'member' key into the copy of the
metadata dictionary for this recipient's delivery. This will contain the
IMember of the recipient, if the recipient is a member of the mailing list.
There will still be a 'recipient' key which will contain just the email
address to deliver the message to.
- Remove $user_password from header/footer placeholders.
- Remove the 'personalize' key from the metadata dictionary and change
decorate.process() to search only for the 'member' key. No need for both of
them and the 'member' key contains more information. Plus, it allows us to
do a more efficient member query in the delivery module some time in the
future.
- Move some of the LMTP log messages from mailman.runner to mailman.smtp.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
footers, using the same semantics and algorithm as for welcome and goodbye
messages.
Additional schema changes:
- msg_header -> header_uri
- msg_footer -> footer_uri
- digest_header -> digest_header_uri
- digest_footer -> digest_footer_uri
|
| |
|
|
|
|
|
|
|
|
| |
email.
Also:
- The user's Full Name is included on the To line of a welcome message.
- Clean up some tests.
- The welcome_message_uri for lists using the default style is set to
mailman:///welcome.txt so a welcome message is sent by default.
|
| |
|
|
|
| |
Also add some debugging to the verification message, IOW, which template is it
using (this may be more generally useful, but for now, it's an experiment).
|
| | |
|
| |
|
|
|
|
|
|
|
| |
`digest=` argument now accepts the following values: `no` (for regular
delivery), `mime`, or `plain`.
Also:
- Fix get_queue_messages() to properly sort on the string representation of a
header, since it could be a Header instance.
|
| |
|
|
| |
are already members of the list.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
if they contain non-ASCII characters. (LP: #685261)
Also:
- When the registrar confirms an email address, the verified_on value gets
set using the Mailman datetime interface. This simply improves testability
for that API.
- In Runner._one_iteration(), be sure to commit the database transaction
*before* calling _short_circuit().
|
| |\
| |
| |
| |
| |
| | |
- Refactor to use the flufl.password package.
- Adapt to the API for flufl.bounce 2.0.
- Add a `bin/mailman shell` alias for `bin/mailman withlist`.
|
| |/ |
|
| |
|
|
|
|
|
|
|
| |
automatically do the right thing in most cases. Keep test_suite() in
test_documentation.py since these dynamically set up docs tests properly.
Refactor test_passwords.py so that base class tests aren't bogusly run. Also,
remove test_membership.py which was essentially disabled because it was
testing the MM2 membership API.
|
| |
|
|
|
|
| |
off the `mailman.config.config` object.
* Fixed bogus use of `bounce_processing` attribute (should have been
`process_bounces`, with thanks to Vincent Fretin. (LP: #876774)
|
| |\
| |
| |
| | |
(LP: #872391)
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and exposed to the REST API as their integer equivalents. They are stored
in the database using Storm's UUID type.
- ISubscriptionService.get_member() now takes a UUID
- IUserManager.get_user_by_id() now takes a UUID
* Moderators and owners can be added via REST (LP: #834130). Given by
Stephen A. Goss.
- add_member() grows a `role` parameter.
- ISubscriptionService.join() grows a `role` parameter.
* InvalidEmailAddressError no longer repr()'s its value.
* `address` -> `email` for consistency
- delete_member()
- ISubscriptionService.leave()
* Fixed typo in app/subscriptions.py __all__
* AlreadySubscribedError: attributes are now public.
* More .txt -> .rst renames.
|
| |
|
|
|
|
|
|
|
|
|
| |
Also:
* Use utilities.datetime.now() so that moderation related dates are
predictable during the test suite.
* When a message is accepted, drop it in the pipeline queue. The above bug
was caused by the message going in the incoming queue, and then being
re-moderated.
* Expose mailman.bin.master.Loop in __all__.
* Add some helpful debug logging.
|
| |
|
|
|
|
| |
correctly. (LP: #770328)
(I hope)
|
| |
|
|
|
|
| |
member records. Arguments are `subscriber` (email address to search for -
required), `fqdn_listname` (optional), and `role` (i.e. MemberRole -
optional). (LP: #799612)
|
| | |
|
| |
|
|
|
| |
for consistency. This changes the REST API for mailing list
resources. (LP: #787599)
|
| |
|
|
|
| |
* Expose **kws to inject_text()
* Add tests.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Queue runners are now called just 'Runners' since several of them don't
manage queue directories.
* Ban the term 'qrunner' too.
* The master queue runner watcher should now just be called the 'master' or
the 'master runner'.
* bin/qrunner -> bin/runner
* mailman.qrunner log file -> mailman.runner
* master-qrunner.lck -> master.lck
* master-qrunner.pid -> master.pid
Also:
* Remove some obsolete files
* Begin the .txt -> .rst renaming
|
| |
|