summaryrefslogtreecommitdiff
path: root/src/mailman/mta
Commit message (Collapse)AuthorAgeFilesLines
* Rename metadata key for clarityBarry Warsaw2017-08-041-12/+12
|
* Add support for regex based postfix transport maps and relay_domains.Abhilash Raj2017-05-232-62/+155
|
* Bump copyright years.Barry Warsaw2017-01-0414-14/+14
|
* Use `atpublic` for @public instead of internal copy.Barry Warsaw2016-11-2911-11/+11
|
* Fix the connection count tests.Barry Warsaw2016-11-241-1/+46
|
* Sort the recipients list.Barry Warsaw2016-11-241-1/+3
|
* Reorganize the documentation for better accesibilityAbhilash Raj2016-08-211-0/+8
|
* Rebase mailman/mailman!180 and cleanup # noqaBarry Warsaw2016-07-281-12/+12
|
* New template system. Closes #249Barry Warsaw2016-07-164-23/+23
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* Use flake8-respect-noqa plugin and fix more complaints.Barry Warsaw2016-04-011-2/+2
|
* Don't use `flake8: noqa`.Barry Warsaw2016-04-011-12/+12
| | | | | | | This suppresses all errors in the file. Use `noqa`, although pep8 doesn't honor this for all errors. There may be a plugin which helps.
* Clean up the mta directory.Barry Warsaw2016-03-2514-120/+48
|
* Super duper.Barry Warsaw2016-01-266-7/+7
| | | | | * Python 3-ify super() calls. * Remove a bunch of obsolete exception classes.
* Several optimizations:Barry Warsaw2016-01-111-2/+2
| | | | | | | | | | | | * Use `yield from` wherever appropriate. * Use SA's .one_or_none() where appropriate. - Fix a bug in MailingList.pass_extensions. - Use ValueError in other places for consistency. - Remove unreached/nonsense code. - Simplify the SubscriptionService.find_member() and .find_members() implementations. - Boost coverage.
* Happy New Year.Barry Warsaw2016-01-0214-14/+14
|
* Port to Python 3.5.Barry Warsaw2015-06-223-2/+16
|
* Replace add_member() with subscribe() helper.Barry Warsaw2015-03-261-8/+2
|
* * Refactor add_member() so that it uses a RequestRecord namedtuple.Barry Warsaw2015-03-211-3/+5
| | | | | | * RequestRecord contains no password key so these are not part of the held requests database any more. * Pending record contains `email` now instead of `address`.
* Bump copyright years.Barry Warsaw2015-01-0414-14/+14
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-2214-57/+8
|
* Fix mta and lmtp tests.Barry Warsaw2014-12-174-28/+61
|
* Tox-ify the test suite. Now you don't have to create a virtualenv separately.Barry Warsaw2014-11-071-1/+1
| | | | | | | | | | | To do this, we have to handle random test ordering, since tox explicitly sets PYTHONHASHSEED. That's a good thing for the future Python 3 port. Removed `mailman conf -t/--sort`; now the output is always sorted. RFC 2369 headers are now sorted before being added. etag repr dicts are sorted using pprint.pformat().
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-2813-39/+39
| | | | | | | | reflect this. Also, mock out sys.stderr on some tests so that their nose2 output is quieter. A few other minor coding style consistencies.
* Bump copyright years.Barry Warsaw2014-01-0113-13/+13
|
* * Add support for the Exim 4 MTA. Contributed by Stephen Turnbull.Barry Warsaw2013-11-301-0/+51
|\
| * New modules config.exim4 and mta.exim4 support the Exim4 MTA.Stephen J. Turnbull2013-09-251-0/+50
|/ | | | Documentation added to docs/MTA.rst (with some stylistic changes to existing text.
* Add enough __init__.py files to make these docs directories discoverable.Barry Warsaw2013-08-261-0/+0
|
* Bump copyright years.Barry Warsaw2013-01-0112-12/+12
|
* ConfigurationBarry Warsaw2012-11-043-17/+17
| | | | | | | | | | | | | | | ------------- * `[passlib]path` configuration variable renamed to `[passlib]configuration`. * Postfix-specific configurations in the `[mta]` section are moved to a separate file, named by the `[mta]configuration` variable. * In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to `postmap_command`. Also: * More Python 2.7-isms, use assertMultiLineEqual() directly. * Added external_configuration() and load_external() to mailman.config.config * ConfigLayer does a blanket set of [postfix]postmap_command so subtests generally won't have to.
* * Added support for Postfix `relay_domains` setting for better virtual domainBarry Warsaw2012-10-122-57/+153
|\ | | | | | | | | | | | | | | support. Contributed by Jimmy Bergman. * `bin/mailman aliases` loses the `--output`, `--format`, and `--simple` arguments, and adds a `--directory` argument. This is necessary to support the Postfix `relay_domains` support.
| * Write a domain map that postfix can use as relay_domains automatically on ↵Jimmy Bergman2012-09-241-0/+60
|/ | | | | | list creation/removal. Improve postfix documentation in MTA.rst by referencing the official docs.
* General code cleanup.Barry Warsaw2012-04-254-23/+21
| | | | | | | | - 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.
* ArchitectureBarry Warsaw2012-03-261-2/+2
| | | | | | | | | | | | | | | | | | | ------------ * Internally, all datetimes are kept in the UTC timezone, however because of LP: #280708, they are stored in the database in naive format. * `received_time` is now added to the message metadata by the LMTP runner instead of by `Switchboard.enqueue()`. This latter no longer depends on `received_time` in the metadata. * The `ArchiveRunner` no longer acquires a lock before it calls the individual archiver implementations, since not all of them need a lock. If they do, the implementations must acquire said lock themselves. Configuration ------------- * New configuration variables `clobber_date` and `clobber_skew` supported in every `[archiver.<name>]` section. These are used to determine under what circumstances a message destined for a specific archiver should have its `Date:` header clobbered.
* 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)
* Consistent use of assertMultiLineEqual().Barry Warsaw2012-03-062-15/+8
|
* Update NEWSBarry Warsaw2012-03-051-1/+0
|
* Fix header/footer interpolations when personalizing messages.Barry Warsaw2012-03-053-9/+152
| | | | | | | | | | | | | | | | | | - 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-041-4/+29
| | | | | | | | | | | | 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
* * `IMailTransportAgentAliases` now explicitly accepts duck-typed arguments.Barry Warsaw2012-01-272-1/+53
| | | | - Also, rewrite the Postfix alias generator to use the faster, duck-typed API.
* * Add property `IListmanager.name_compoments` which returns 2-tuples forBarry Warsaw2012-01-271-1/+1
| | | | every mailing list as (list_name, mail_host).
* copybumpBarry Warsaw2012-01-0111-11/+11
|
* Remove extraneous `test_suite()` functions. zope.testrunner willBarry Warsaw2011-10-301-10/+0
| | | | | | | | | 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.
* * Fixed Postfix alias file generation when more than one mailing listBarry Warsaw2011-10-162-4/+39
| | | | exists. (LP: #874929). Given by Vincent Fretin.
* Finally, all doctests are named .rstBarry Warsaw2011-09-236-0/+0
|
* * The IMailingList attribute ``host_name`` has been renamed to ``mail_host``Barry Warsaw2011-06-162-4/+3
| | | | | for consistency. This changes the REST API for mailing list resources. (LP: #787599)
* Typos, left over crud, and a refactoring.Barry Warsaw2011-06-102-15/+3
|
* Refactor MTA alias creation.Barry Warsaw2011-06-106-34/+230
| | | | | | | | | | | | | * Create an IMailTransportAgentAliases utility that contains all the logic for generating all the aliases for a mailing list, both the fully-qualified ones and the local-part ones. * Add -f and -s options to `bin/mailman aliases` to facilitate outputing the aliases in other formats than the configured one, and for printing out a simple list of the aliases. * IMailTransportAgentAliases -> IMailTransportAgentLifecycle; also add a new definition for IMailTransportAgentAliases
* Start the enablement of bounce detection.Barry Warsaw2011-05-011-1/+1
| | | | | | | | | | * 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.
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-161-3/+3
|
* encrypt_password(): New convenience function for ensuring that a password isBarry Warsaw2011-04-081-3/+3
| | | | | | | | | | | | | | | both encrypted according to a scheme, and a bytes object. add_member(): Use encrypt_password(). cli_members: Give the user a default, user-friendly password. Of course, this will be encrypted so it can't be retrieved, but it can be reset. Passwords are stored as bytes objects, not unicode now. ConfigLayer: Set the default test password scheme to cleartext. General test repair.