summaryrefslogtreecommitdiff
path: root/src/mailman/app/bounces.py
Commit message (Collapse)AuthorAgeFilesLines
* Bump copyright years.Barry Warsaw2017-01-041-1/+1
|
* Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-291-1/+1
|
* New template system. Closes #249Barry Warsaw2016-07-161-13/+20
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* First massive round of cleanups.Barry Warsaw2016-03-231-16/+8
| | | | | | | | * Get rid of explicit __all__ settings and use the @public decorator. * Get rid of ^L's * Use expected_count argument for get_queue_messages() * Various code modernizations. * Other minor changes to make flake8 happy.
* Super duper.Barry Warsaw2016-01-261-2/+2
| | | | | * Python 3-ify super() calls. * Remove a bunch of obsolete exception classes.
* Happy New Year.Barry Warsaw2016-01-021-1/+1
|
* Make sure that Pendables always have a typeAurélien Bompard2015-12-161-0/+1
|
* A little bit of code cleanup.Barry Warsaw2015-10-291-3/+3
|
* Bump copyright years.Barry Warsaw2015-01-041-1/+1
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-221-7/+4
|
* Trunk merge.Barry Warsaw2014-12-221-1/+4
|\
| * * Fixed getting non-ASCII filenames from RFC 2231 i18n'd messages. Given byBarry Warsaw2014-12-081-1/+4
| |\ | | | | | | | | | Aurélien Bompard. (LP: #1060951)
| | * Convert unicode instance testing to bytes instance testingAurélien Bompard2014-12-041-1/+1
| | |
| | * Do not auto-convert Message headers to unicodeAurélien Bompard2014-12-021-1/+4
| |/ | | | | | | Fixes: bug #1060951
* / Fix test_bounces.Barry Warsaw2014-12-171-2/+2
|/
* Several internal improvements:Barry Warsaw2014-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | * New events: - ConfirmationNeededEvent is triggered when a pendable requiring confirmation is created. This allows us to define an event handler for this event which sends the user notification. - SubscriptionEvent is triggered when a member is added to a mailing list. This lets us define an event handler which sends the welcome message. * send_welcome_message() now takes a member parameter instead of an address, which lets us directly access the member's delivery mode and user display name (if the member has a user, which it might not in some cases). * Use the list id in the pendable record instead of the list name for robustness (the latter can change but the former is permanent). * Test more registration conditions. * In the bin/runner command line switch handling, default `verbose` to None instead of False. This makes it work better with nose's -E switch (log to stderr). * In call_api(), if a POST, PUT, or PATCH method is used and data is None, encode the empty dictionary; seems like the behavior of urlencode() has changed, so this is safer. * Fix style and pyflakes warnings.
* Bump copyright years.Barry Warsaw2014-01-011-1/+1
|
* Bump copyright years.Barry Warsaw2013-01-011-1/+1
|
* * The link between members and the mailing lists they are subscribed to, isBarry Warsaw2012-09-041-1/+2
| | | | | | | | | | | | | | | now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting address). This is because while the posting address can change if the mailing list is moved to a new server, the list id is fixed. (LP: #1024509) + IListManager.get_by_list_id() added. + IListManager.list_ids added. + IMailingList.list_id added. + Several internal APIs that accepted fqdn list names now require list ids, e.g. ISubscriptionService.join() and .find_members(). + IMember.list_id attribute added; .mailing_list is now an alias that retrieves and returns the IMailingList. - list_id added (LP: #1024509)
* General code cleanup.Barry Warsaw2012-04-251-3/+3
| | | | | | | | - Add explicit dependency on zope.event in setup.py. - Use Python 3 compatible syntax for specifying that a class implements an interface, i.e. the @implementer class decorator. - print_function futures. - Whitespace normalization.
* * Header check specifications in the `mailman.cfg` file have changed quiteBarry Warsaw2012-04-061-3/+0
| | | | | | | | | | | | | | | | | | | | bit. The previous `[spam.header.foo]` sections have been removed. Instead, there's a new `[antispam]` section that contains a `header_checks` variable. This variable takes multiple lines of `Header: regexp` values, one per line. There is also a new `jump_chain` variable which names the chain to jump to should any of the header checks (including the list-specific, and programmatically added ones) match. * Fixed a typo when returning the configuration file's header match checks. (LP: #953497) Also: - Remove an unused method. - Improve test coverage for mailman/app/bounces.py - 100% test coverage for mailman/chains/headers.py - Various other minor code cleanup. - Fixed the 'any' rule, which was checking a bogus metadata dictionary key.
* Merge the Pipermail eradication branch. The scrubber is also removed.Barry Warsaw2012-03-171-5/+6
|\ | | | | | | | | | | | | | | | | | | | | | | * 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-161-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* | Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | "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)
* | * Subscription disabled probe warning notification messages are now sentBarry Warsaw2012-03-141-1/+3
|\ \ | |/ |/| | | without a `Precedence:` header. Given by Mark Sapiro. (LP: #808821)
| * Subscription disabled warnings are now sent without a Precedence:Mark Sapiro2012-03-141-1/+3
|/ | | | header. (LP: #808821)
* copybumpBarry Warsaw2012-01-011-1/+1
|
* * User and Member ids are now proper UUIDs. The UUIDs are pended as unicodes,Barry Warsaw2011-08-301-2/+5
| | | | | | | | | | | | | | | | | | 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.
* * New REST resource http://.../members/find can be POSTed to in order to findBarry Warsaw2011-08-131-1/+1
| | | | | | member records. Arguments are `subscriber` (email address to search for - required), `fqdn_listname` (optional), and `role` (i.e. MemberRole - optional). (LP: #799612)
* Factor out bounce detection to flufl.bounce.Barry Warsaw2011-07-151-27/+1
|
* * Flesh out the BounceRunner, complete with tests.Barry Warsaw2011-05-271-6/+8
| | | | * Clean up the DSN bounce processor.
* * bounce_unrecognized_goes_to_list_owner -> forward_unrecognized_bounces_to Barry Warsaw2011-05-251-2/+45
| | | | | | | | | | | | * 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.
* Implement and test the extraction of the bouncing email address when a probeBarry Warsaw2011-05-091-4/+13
| | | | message bounces. This completes the refactoring of probes for MM3.
* Add non-English tests of the probe message.Barry Warsaw2011-05-081-5/+5
|
* Merge bounces branch (still incomplete, but tests pass).Barry Warsaw2011-05-071-38/+128
|\
| * checkpointingBarry Warsaw2011-05-061-1/+60
| |
| * * Fix setup.py version regexp.Barry Warsaw2011-05-031-38/+68
|/ | | | | | * Move get_verp() to class-based for easy overridding. Hook up StandardVERP but not yet ProbeVERP. * Use uuid.uuid4() to get unique id.
* Start the enablement of bounce detection.Barry Warsaw2011-05-011-0/+53
| | | | | | | | | | * 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.
* Move oneline() out of Utils.py.Barry Warsaw2011-02-251-1/+1
|
* Happy New Year.Barry Warsaw2011-01-011-1/+1
|
* Fix typo in scan_message(). (LP: #645897)Barry Warsaw2010-09-231-4/+13
|
* checkpointingBarry Warsaw2010-08-071-0/+15
|
* Happy New Year.Barry Warsaw2010-01-011-1/+1
|
* Factor out most of the i18n subsystem and convert to using the flufl.i18nBarry Warsaw2009-11-151-1/+1
| | | | package.
* Many pylint cleanups.Barry Warsaw2009-06-301-1/+10
|
* Much clean up of the language code, though more can be done. Factor out theBarry Warsaw2009-02-121-5/+3
| | | | | | | language manager stuff into a separate Language class, and be clearer in the APIs about whether we want a language code or a Language instance. The impetus to this was to get rid of Utils.GetCharSet(), which is done.
* Move mailman.Message to mailman.email.Message. Rename Message.get_sender() toBarry Warsaw2009-02-091-7/+8
| | | | | | | | | Message.sender (property) and Message.get_senders() to Message.senders (another property). The semantics of .sender is slightly different too; it no longer consults config.mailman.use_envelope_sender. Add absolute_import and unicode_literals to Utils.py, and clean up a few imports.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-251-0/+63
correctly regardless of how it's used.