summaryrefslogtreecommitdiff
path: root/src/mailman/pipeline
Commit message (Collapse)AuthorAgeFilesLines
* Rename the src/mailman/pipeline directory to src/mailman/handlers since that'sBarry Warsaw2012-03-2340-5507/+0
| | | | how I think about them anyway.
* Adjustments after landing the nopipermail branch.Barry Warsaw2012-03-171-2/+1
|
* Merge the Pipermail eradication branch. The scrubber is also removed.Barry Warsaw2012-03-177-828/+260
|\ | | | | | | | | | | | | | | | | | | | | | | * Configuration variable `[mailman]filtered_messages_are_preservable` controls whether messages which have their top-level `Content-Type` filtered out can be preserved in the `bad` queue by list owners. * Configuration section `[scrubber]` removed, as is the scrubber handler. This handler was essentially incompatible with Mailman 3 since it required coordination with Pipermail to store attachments on disk. * Schema additions: - mailinglist.filter_action
| * * Pipermail has been eradicated.Barry Warsaw2012-03-166-805/+258
| | | | | | | | | | | | | | | | | | | | | | | | * Configuration variable `[mailman]filtered_messages_are_preservable` controls whether messages which have their top-level `Content-Type` filtered out can be preserved in the `bad` queue by list owners. * Configuration section `[scrubber]` removed, as is the scrubber handler. This handler was essentially incompatible with Mailman 3 since it required coordination with Pipermail to store attachments on disk. * Schema additions: - mailinglist.filter_action
| * Eradicate Pipermail. Everything but the scrubber test works. That will takeBarry Warsaw2012-03-152-31/+10
| | | | | | | | some new APIs I suspect.
* | Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-157-40/+41
|/ | | | | | | | | | | "display_name" across the board. * `IMailingList.real_name` -> `IMailingList.display_name` * `IUser.real_name` -> `IUser.display_name` * `IAddress.real_name` -> `IAddress.display_name` * Schema changes: - real_name -> display_name (mailinglist, user, address)
* * The LMTP server now requires that the incoming message have a `Message-ID`,Barry Warsaw2012-03-132-2/+2
| | | | | | | | | | | 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.
* Clean up a few documentation issues.Barry Warsaw2012-03-121-2/+1
|
* Fix a typo in guess_extension(), and add a test.Barry Warsaw2012-03-053-3/+48
|
* Fix header/footer interpolations when personalizing messages.Barry Warsaw2012-03-051-14/+9
| | | | | | | | | | | | | | | | | | - 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.
* Template indirection now also in effect for regular and digest headers andBarry Warsaw2012-03-042-39/+108
| | | | | | | | | | | | 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
* Restore the RFC 2369 headers to accepted list posts.Barry Warsaw2012-03-011-1/+18
|
* copybumpBarry Warsaw2012-01-0119-19/+19
|
* * Stop adding the X-BeenThere header.Barry Warsaw2011-11-064-275/+329
| | | | | | | * Separate out the RFC 2369 header adding handler. * Dynamically calculate the `List-Id` header instead of storing it in the database. This means it cannot be changed. * Be sure to clean out any digest .mmdf files when the world is reset.
* Finally, all doctests are named .rstBarry Warsaw2011-09-2319-0/+0
|
* Remove all pylint vestiges.Barry Warsaw2011-08-0315-16/+0
|
* * The IMailingList attribute ``host_name`` has been renamed to ``mail_host``Barry Warsaw2011-06-162-3/+3
| | | | | for consistency. This changes the REST API for mailing list resources. (LP: #787599)
* Major terminology shift:Barry Warsaw2011-06-012-2/+2
| | | | | | | | | | | | | | | | | * 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
* Rename 'queue' directory to 'runners' since not all subprocesses run a queue.Barry Warsaw2011-05-291-1/+1
|
* * bounce_unrecognized_goes_to_list_owner -> forward_unrecognized_bounces_to Barry Warsaw2011-05-252-13/+23
| | | | | | | | | | | | * 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.
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-164-11/+11
|
* Reimplement wrap() using modern techniques, and finally get rid of Utils.py!Barry Warsaw2011-03-172-5/+4
|
* Utils.maketext() and Utils.findtext() are gone.Barry Warsaw2011-03-161-8/+10
|
* Cue Freddy Mercury. Another one bites the dust.Barry Warsaw2011-02-251-2/+1
|
* Move oneline() out of Utils.py.Barry Warsaw2011-02-253-3/+5
|
* Happy New Year.Barry Warsaw2011-01-0118-18/+18
|
* Because it was just to damn confusing, rename IAddress.address toBarry Warsaw2011-01-015-22/+33
| | | | | | 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.
* Fairly significant change to the way member and nonmember moderation occurs.Barry Warsaw2010-12-291-173/+0
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Upgrade from using the locknix package to using flufl.lock.Barry Warsaw2010-11-271-1/+1
|
* Fix the obvious errors identified by pyflakes. Skip false positives (mostlyBarry Warsaw2010-10-083-9/+6
| | | | | due to _() interpolation) and a few other problems that did not have immediately obvious fixes.
* * Allow X-Approved and X-Approve headers, equivalent to Approved andBarry Warsaw2010-09-202-7/+11
| | | | Approve. LP: #557750
* More documentation updatesBarry Warsaw2010-09-102-6/+8
|
* More documentation updatesBarry Warsaw2010-09-101-34/+38
|
* More documentation updatesBarry Warsaw2010-09-103-39/+55
|
* More doc fixes.Barry Warsaw2010-09-095-44/+54
|
* More documentation improvements.Barry Warsaw2010-09-097-61/+76
|
* Many documentation fixes for better Sphinx output.Barry Warsaw2010-09-081-3/+4
|
* * A start to import of Mailman 2.1 config.pck files.Barry Warsaw2010-04-051-1/+1
| | | | * Move DigestFrequency from mailinglist to digests.
* So long X-BeenThere, and thanks for all the fish.Barry Warsaw2010-02-161-30/+0
|
* Happy New Year.Barry Warsaw2010-01-0119-19/+19
|
* Pick lint. Down to 4137 lines of warnings.Barry Warsaw2009-12-1417-93/+109
|
* * Refactor the language manager off of the config object and into a utility.Barry Warsaw2009-12-101-2/+5
| | | | | | | | * 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.
* Add a 'name' attribute to the Switchboards. This is so 'whichq' can be setBarry Warsaw2009-12-101-1/+1
| | | | for bin/mailman unshunt.
* * Make IDomainManager a utility, since the config object is global.Barry Warsaw2009-12-081-2/+2
| | | | | | | | * 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.
* Revert the last changes. Calculate size where needed.Barry Warsaw2009-12-051-2/+0
|
* The delivery agent requires that the message object have a .original_sizeBarry Warsaw2009-12-041-0/+2
| | | | attribute. Add this for UserNotifications.
* Refactor VERP calculation so that it's now in the outgoing queue instead ofBarry Warsaw2009-11-271-144/+10
| | | | | | 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?).
* * The start of a conversion of bin/withlist to bin/mailman withlistBarry Warsaw2009-11-261-24/+0
| | | | | | | | * 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.
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-1518-18/+19
| | | | package.
* Cleanup.Barry Warsaw2009-11-0415-15/+0
|