summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix typo in module docstring, reported by Ousmane Wilanebwarsaw2001-11-201-1/+1
|
* New French templatebwarsaw2001-11-201-0/+11
|
* Ousmane Wilane's latest French templatesbwarsaw2001-11-2027-309/+343
|
* main(): Add Mailman/Cookie.py{,c} to the list of old sources needingbwarsaw2001-11-201-1/+1
| | | | to be removed.
* Because the CommandRunner no longer processes -owner messages, we needbwarsaw2001-11-202-34/+40
| | | | | | | | | to do a little more work here. Specifically, we need to add an explicit pipeline to the message's metadata, then we can send the message through the normal incoming queue (i.e. we override the incoming queue's default pipeline). We also set the envsender attribute to point to the -bounces address for the list so we can handle any bounces to the list's owners.
* Code cleaningbwarsaw2001-11-202-2/+6
|
* VALID_COMMANDS: Add bouncesbwarsaw2001-11-201-0/+1
|
* The script that listens on the -bounces address for a list.bwarsaw2001-11-201-0/+61
|
* SCRIPTS: add the bounces script.bwarsaw2001-11-201-1/+1
|
* main(): All owner refereces should point to the mailman-owner@dom.ainbwarsaw2001-11-201-5/+7
| | | | | | | | | | | address instead of the mailman-admin@dom.ain address. We don't want people contacting the site owner to be bounce processed. Also, Utils.get_site_email()'s second argument should no longer include the leading dash. Set the `errorsto' metadata to the mailman-bounces address, and add a `verp' flag in the metadata set to VERP_PASSWORD_REMINDERS.
* tee_to_stdout=1 in the error handler.bwarsaw2001-11-202-2/+2
|
* process_request(): Utils.get_site_email()'s second argument should nobwarsaw2001-11-201-1/+1
| | | | longer include the leading dash.
* _dispose(): Support for regular non-personalized VERP delivery.bwarsaw2001-11-201-0/+7
| | | | | Consults VERP_DELIVERY_INTERVAL to decide whether to set the `verp' metadata key.
* Some updating of the big comment. I'm not spending a lot of time onbwarsaw2001-11-201-6/+8
| | | | | this because I want to create a flow chart later to give a better description of the details.
* This runner now only handles -request, -join, and -leave emails. Itbwarsaw2001-11-201-102/+10
| | | | | | | | | | | no longer handles any -admin or -owner messages, or any bounce processing. _dispose(): Don't look at the `authoritah' metadata key. Also, vastly simplify the main switch because it only needs to look at torequest, tojoin, and toleave. _toadmins(): Removed as unnecessary.
* makealiases(): The list of aliases now includes -bounces which goes tobwarsaw2001-11-201-4/+6
| | | | | | | | the new bounces script. -admin no longer delivers to the mailowner script since the mailowner script no longer does bounce processing. For backwards compatibility -admin goes to the bounces script now (should it?). Also, -owner is no longer an alias for -admin but pipes to the mailowner script directly.
* addlist(): When creating the aliases file for the first time, be surebwarsaw2001-11-201-1/+7
| | | | | | | | | | | to write out the mailman-loop address which is used to consume all messages sent to the mailman-owners address that bounces. This is now the best way to break bounce loops. All mail to mailman-loop@dom.ain will get appended to an mbox file called $prefix/data/owner-bounces.mbox. Similarly, make sure the mailman-loop address is in the database.
* Support for VERP deliveries.bwarsaw2001-11-201-22/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | process(): Don't hardcode the envelope sender to the -admin address. First off, we're directing bounces to the -bounces address. Second, if we're VERPing, we'll be calculating the envelope sender individually for each recipient in the deliver() function. When VERPIng, set the envsender local variable to a tuple containing some pre-calculated information needed by deliver(). Specifically it will contain the split mailbox and domain of the list's -bounces address. Also, when VERPing, each chunk will contain exactly one recipient, so use a list comprehension to calculate this (it's actually a list of lists where the inner list has one item). We'll also pass the envsender local variable to both threaded_deliver() and deliver(). To make VERP delivery slightly more efficient, every thread gets its own connection to the MTA. So we create an smtplib.SMTP instance once but do not connect it until we actually get to deliver() -- and there we have to use a kludge to determine whether we're connected or not. deliver() will re-use the connection to the MTA to do the conn.sendmail() calls. pre_deliver(): Add the conn argument. threaded_deliver(): Create one smtplib.SMTP instance for each thread. Be sure to close the connection when the thread is finished. deliver(): Add the conn argument. Craft the VERP envelope sender as described above. Make sure the MTA connection is connect()'ed.
* Update some commentsbwarsaw2001-11-201-1/+7
|
* process(): VERP support. If VERP_PERSONALIZED_DELIVERIES is true,bwarsaw2001-11-201-1/+4
| | | | | then set the `verp' flag in the message metadata. This will signal the SMTPDirect module to VERP this message delivery.
* process(): We're now setting Sender: and Errors-To: to thebwarsaw2001-11-201-3/+3
| | | | | | listname-bounces@dom.ain address instead of to the -admin address. This departure cleans up the return path for bounced deliveries, but does require a regeneration of the aliases file.
* process_request(): Utils.get_site_email()'s second argument should nobwarsaw2001-11-201-1/+1
| | | | longer include the leading dash.
* get_site_email(): Default the `extra' argument to None, and change thebwarsaw2001-11-201-2/+4
| | | | API so that the leading dash on extra shouldn't be included.
* CheckCookie(): Let's be explicit about using the Cookie.SimpleCookiebwarsaw2001-11-201-6/+19
| | | | | | | | | | | class to decode the cookie data so there's no possibility of unpickling exploits of untrusted data. I'm still mildly concerned about using marshal.loads() to de-serialize the cookie data we want to use for authorization, although I think we're more or less safe for the reasons described in the preceding comment. I should probably think about this some more, possibly using the newly documented pickle anti-exploit measures.
* getListAddress(): Basic method for calculating a sub-address of thebwarsaw2001-11-201-10/+16
| | | | | | | | | | list given the extension. GetAdminEmail(), GetOwnerEmail(), GetRequestEmail(), GetListEmail(): Define in terms of getListAddress(). ApprovedAddMember(), ApprovedDeleteMember(): Utils.get_site_email()'s second argument should not include the leading dash.
* New variables to control VERP-like behavior for better bouncebwarsaw2001-11-201-5/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | detection. VERP_FORMAT: The string (with interpolations) that is used as the format for VERP'd envelope senders. VERP_REGEXP: The (unfortunately complex) regular expression which decodes strings encoded with VERP_FORMAT. WIBNI Python had a scanf() equivalent? VERP_PASSWORD_REMINDERS: A flag which controls whether password reminders are VERP'd. This is a golden opportunity because such emails are already individualized. VERP_PERSONALIZED_DELIVERIES: A flag which controls whether personalized regular deliveries are VERP'd. This is another golden opportunity because such emails are already individualized. VERP_DELIVERY_INTERVAL: A variable which controls the frequency with which to VERP regular, non-personalized deliveries. 0 means never VERP these, 1 means to always VERP them, and a number > 1 means to VERP every Nth delivery. GLOBAL_PIPELINE: Move the ToUsenet handler up to just after the ToArchive handler. Also, added some comments. QRUNNERS: Alphabetize, and also add a BounceRunner now that we're going to change the envelope sender address so that bounces always come to listname-bounces@dom.ain. IOW, we're finally separating administration from bounce processing, however this /will/ require folks to regenerate their aliases. We'll make that easier for them.
* Some code cleaning, and adjustment to new API.bwarsaw2001-11-201-7/+2
| | | | | | | RegisterBounce(): The dirty flag wasn't used anywhere. HandleBouncingAddress(): Utils.get_site_email()'s second argument should no longer include the leading dash.
* Fixed the email.Utils.formatdate() numeric timezone calculation forbwarsaw2001-11-191-0/+0
| | | | | | America/St_Johns, which was broken due to an erroneous divmod() call. Not important enough to bump the version number, so if you installed it in the last hour or so, please re-install.
* email-0.96 which contains some fixes for parsedate*() andbwarsaw2001-11-192-0/+0
| | | | formatdate(), sync'd with the Python 2.2. versions.
* Add a note about the Mailman FAQ wizard.bwarsaw2001-11-141-0/+4
|
* pending_requests(): Subscription ID records unpack to a 6 tuple now,bwarsaw2001-11-091-2/+9
| | | | | which includes the fullname, but also watch out for older records which don't include the fullname.
* Version 0.95 contains an RFC 2822 compliant email.Utils.formatdate()bwarsaw2001-11-092-0/+0
|
* show_post_requests(): We have to translate the `reason' we get out ofbwarsaw2001-11-071-1/+1
| | | | | the admin database, otherwise it won't be in the list's preferred language.
* Updated catalogs and Norwegian translationsbwarsaw2001-11-0717-2821/+4064
|
* process_request(): Add an html comment to a string that otherwisebwarsaw2001-11-061-2/+7
| | | | | would be a duplicate of one in bin/newlist. Web version and email version should have different entries in the message catalog.
* Fixed several inaccuracies and inconsistencies reported by Danielbwarsaw2001-11-061-21/+26
| | | | | Buchmann, including that Defer, Approve, Reject, Discard are valid for both held messages and held subscription requests.
* subscription_prompt(), unsubscription_prompt(), heldmsg_prompt(): Thebwarsaw2001-11-061-3/+38
| | | | | | | | | | results strings should be displayed in the language that the subscribee has requested. Also, tailor the response message based on whether the moderators have to approve a confirmed request or not. Reported by Daniel Buchmann. subscription_confirm(): Need a `listname' local variable for _() string interpolation.
* HoldSubscription(): Because the subscription authorization message isbwarsaw2001-11-061-1/+1
| | | | | | to be sent to the list moderators, it should be sent in the list's own preferred language, not in the requested language of the subscribee. Reported by Daniel Buchmann.
* A bounce message that kill's Mailman 2.0.6's DSN.pybwarsaw2001-11-061-0/+89
|
* main(): When using private rosters, and attempting to remind, unsub,bwarsaw2001-11-061-22/+32
| | | | | | | or login, be sure we test for membership with isMember() before we call the methods that require the user to be a member. Organize the code such that membership isn't leaked due to the result messages, and that mischievous attempts are logged.
* ChangeHTML(): Must make sure the language-specific directory for thebwarsaw2001-11-051-4/+12
| | | | list exists before we try to write the template file.
* main(): If the site list is missing, write a log message to logs/errorbwarsaw2001-11-051-1/+10
| | | | | and exit with a non-zero status (so cron should let us know there's a problem).
* password_input(): Daniel Buchmann rightly points out that the textbwarsaw2001-11-051-4/+5
| | | | | explanation needs to be written to reflect the fact that password inputs are not on the general optinos page anymore.
* LANGUAGES: Add `cs' for Czech.bwarsaw2001-11-052-2/+2
|
* Add the `cs' language code for Czech.bwarsaw2001-11-051-0/+1
|
* Czech templates by Dan Ohnesorgbwarsaw2001-11-0530-0/+1131
|
* Czech catalogs by Dan Ohnesorgbwarsaw2001-11-052-0/+7136
|
* Updatedbwarsaw2001-11-031-31/+31
|
* A few more Hungarian files...bwarsaw2001-11-033-198/+198
|
* Japanese updates from Tokio Kikuchibwarsaw2001-11-034-330/+263
|