summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* process(): Don't tack on the regular mail header and footer if thebwarsaw2000-09-151-0/+3
| | | | | message is a digest (the digest header and footer should already be properly attached).
* process(): Do the clobber_date logic here instead of inbwarsaw2000-09-141-2/+21
| | | | | | | | Archiver/Archiver.py, because We want clobber_date to affect what goes in Pipermail or the external archiver. Be sure to restore the original date after the archiver gets its hands on the message. If clobber_date is turned on, set the X-Original-Date: header to the original Date: field value.
* __archive_to_mbox(): Don't do the clobber_date logic here, becausebwarsaw2000-09-141-16/+8
| | | | | | it'll only affect what gets put in the .mbox file. We also want clobber_date to affect what goes in Pipermail or the external archiver. Move the clobber_date logic to Handlers/ToArchive.py.
* locked(): Suppose we try to touch() the lock file, but we don't ownbwarsaw2000-09-141-1/+9
| | | | | | | | | it, and in fact our alter-ego owns the file (e.g. the cgi process or shell account uid if we're mail). The utime() call will fail with an EPERM which wasn't being caught. Catch it here and return 0 since we obviously don't own the lock. TBD: should other calls to __touch() be similarly wrapped?
* process(): If any multifile.Error occurs, this bounce detector returnsbwarsaw2000-09-141-26/+29
| | | | no-hit.
* Changed the warning into a comment, and clarify that users shouldbwarsaw2000-09-141-5/+5
| | | | never make changes to this file, but should edit mm_cfg.py instead.
* AppendMessage(): Do a better job of determining if the last characterbwarsaw2000-09-141-6/+15
| | | | | | in the file is a newline or not by doing a seek(-1, 2) and catching the IOError that can result if the file is empty. Closes SF bug #114099 Jitterbug PR#73.
* FormatOptionHelp(), GetItemGuiDescr(): Several changes which improvebwarsaw2000-09-121-23/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | the usability of the web interface, closing SF bug #114126, Jitterbug PR#148. Specifically, - There is now a submit button on the details page, and you can use that page to change options. This should work better now that details by default don't pop open a new window, however this is a warning at the bottom of the page about synchronization issues. - Details pages now include the standard footer too. - Volatile config variables (e.g. _mass_catchup) have a note saying that setting the value performs an action, but doesn't change permanent state. ChangeOptions(): The above change uncovered what I believe is a bug, where if the form data is missing a property found on the category's options, it would be skipped /unless/ the type of the property were Text, String, or EmailList. I don't understand why that special case was there, so I changed this logic to always skip the property if it isn't found in the form data. Otherwise submitting from a details page could cause some confusing behavior. GetConfigOptions(): I don't think the caching of mlist.GetConfigInfo() is worth it. The lookups should be plenty fast.
* MakeRandomPassword(): In response to several complaints, and SF bugbwarsaw2000-09-121-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | #114136, Jitterbug PR#159, this changes the password generation scheme to use more mnemonically friendly syllables. Passwords are composed of only lower case letters, are lengthened to 6 characters, and should still be meaningfully hard to crack. Examples: doangu siabdo poesza unorbi ziurag okasho ahhuoz idcaih efkoex zubasu nukiis igoffa veehef ogkuoc adebab ovtoci veixep amodbo
* RadioButtonArray.Format(): Fix vertical layout so that the buttons arebwarsaw2000-09-121-12/+10
| | | | | still placed next to the names. This isn't used anywhere, but that's because it never worked before!
* process(): When writing the table of contents, be a little more cleverbwarsaw2000-09-121-42/+53
| | | | | | | | | | | about multiline Subject: headings (be sure all continuation lines are indented the same amount). filterDigestHeaders() -> filter_headers() Digest.Present(), filter_headers(): Make sure continuation header lines don't get their initial whitespace eaten. Closes SF bug #114092 (Jitterbug PR#4).
* PrintPostRequest(): Hack around a usability issue pointed out bybwarsaw2000-09-121-7/+12
| | | | | | | | | Jeremy Hylton. The `Action:' buttons in horizontal placement are confusing: does the button go with the word before it or after it? Hard to tell without scanning the whole line. Unfortunately, vertical placement takes up too much real-estate. This compromise puts the buttons underneath the words.
* ChangeOptions(): Use mlist.SetUserDigest() to set/unset the digestbwarsaw2000-09-111-16/+11
| | | | | | | | mode for the user. Although we have to kludge in the `force' flag, this is much better because it handles placing digest->nondigest users on the `one_last_digest' list. Fixes SF bug #114089 / Jitterbug PR# 166.
* inject_digest(): Be careful to prune out duplicate addresses whenbwarsaw2000-09-111-11/+10
| | | | | | combining mlist.one_last_digest and mlist.GetDigestMembers(). Part of the fix for SF bug #114089 / Jitterbug PR# 166.
* SetUserDigest(): Added new `force' flag, so that setting the digestbwarsaw2000-09-111-3/+3
| | | | | | | | mode from the admin page won't check for digestable/nondigestable setting on the mailing list. Presumably the admin knows what s/he is doing. Fixes SF bug #114089 / Jitterbug PR# 166.
* send(): Apply patch from Python 2.0b1 which fixes the problem withbwarsaw2000-09-111-1/+3
| | | | partial socket writes. This should fix bug #101475.
* Document that DEFAULT_URL must end in a slash!bwarsaw2000-09-111-0/+1
|
* main(): Because `/' is legal in RFC822 email addresses, it could showbwarsaw2000-09-111-1/+1
| | | | | | up in the user link. This would be interpreted as additional path components, so we need to join the user name components to get the actual address.
* GetOptionsURL(): Email addresses can have strange characters in them,bwarsaw2000-09-111-1/+2
| | | | | | | which are legal re: RFC822, but aren't valid for URLs. urllib.quote() the address part of the URL. Closes SF bug #113787.
* GetConfigInfo(): Change the docstring and details for the web_page_urlbwarsaw2000-09-091-10/+15
| | | | | | | | | option. Changing web_page_url to an invalid base url will hose your list royally, requiring the site administrator to fix the url. There's no good way to sanity check the value entered, so the best we can do is have a warning explaning the situation. Closes SF bug #113739.
* AddErrorMessage(): Insert the big red "Warning:" here, but make thebwarsaw2000-09-091-13/+20
| | | | | | | | | | | rest of the error message in black, italics. More readable, and makes the warning stand out better. main(): Improve the digestable/nondigestable sanity checks to use the better error message output format, and to perform the tests after the options have been changed (otherwise the warnings might not be still applicable). Also added a warning when a list has disabled digest deliver and non-digest delivery!
* PrintResults(): Add a link back to the user options page on thebwarsaw2000-09-091-32/+55
| | | | | | | | | | results page. Obviates the need for using the `back' button after changing your options. process_form(): Call PrintResults() with the new `user' argument. Catch MMMustDigestError and print a notification that the digest option hasn't been set. Parallels what happens for MMCantDigestError. Closes SF bug #113728.
* GetMailmanFooter(): Add a link to the administrative interface to eachbwarsaw2000-09-091-1/+5
| | | | | list footer. Makes it much easier to get to the admin pages from the normal user pages.
* PrintPostRequest(): Default forward address is -owner instead ofbwarsaw2000-09-091-1/+1
| | | | -admin to avoid processing by the bounce subsystem.
* ScanMessages(): Added Compuserve and Microsoft bounce detectors.bwarsaw2000-09-091-0/+2
|
* typo in docstringbwarsaw2000-09-091-1/+1
|
* Compuserve's bounce format.bwarsaw2000-09-091-0/+48
|
* New bounce detector for what I think is called "Microsoft SMTPSVC",bwarsaw2000-09-091-0/+61
| | | | certainly what MSN and a few other services use.
* process(): Only log successes to logs/post if the message actually wasbwarsaw2000-09-081-1/+5
| | | | | posted to the list (as opposed to the -admin, -owner, or -request addrs, or internally generated). Closes SF bug #111574.
* process_form(): Fix for SF bug #111306, results in triplicate when notbwarsaw2000-09-081-3/+1
| | | | supplying a password. Given by Thomas Wouters.
* RegisterBounce(): Remove the saveifdirty flag from the argument list,bwarsaw2000-09-081-73/+65
| | | | | | | | | | | | and unwrap from the try/finally saving the mailing list. We'll assume the caller always saves the list. HandleBouncingAddress(): Don't do a msg.rewindbody()/msg.fp.read() to get the text of the message. When called from qrunner, the file handle will be closed, and this will cause a fatal error in SMTPDirect, which in turn causes multiple sends until all offending email addresses are disabled. The right way to do this now is to use the msg.body attribute. This closes SF bugs #111843 and #111176.
* process(): Remove the saveifdirty flag from the RegisterBounce() call.bwarsaw2000-09-081-1/+1
|
* Minimal update to Python's smtplib to fully qualify default hostbwarsaw2000-08-231-19/+23
| | | | names.
* process(): Use `append' instead of `extend' to add to faildrecips.bwarsaw2000-08-231-1/+1
| | | | Closes SF bug #110731.
* If we're running under Python 2.0, we can grab much fasterbwarsaw2000-08-221-18/+25
| | | | implementations of hexlify and unhexlify from the binascii module.
* process(): Accepting, and closing, SF bug #110535, by Dan Mick.bwarsaw2000-08-071-1/+1
|
* __save(): Improved robustness in the face of disk-full or otherbwarsaw2000-08-051-24/+18
| | | | | | | IOErrors. E.g. the marshal module doesn't actually check for write() errors, so we dump the marshal to the string and write it in one fell swoop using the file object's write() method. Thanks to GvR for reviewing.
* main(): Make sure mlist.web_page_url ends in a trailing slash bybwarsaw2000-08-031-0/+1
| | | | | calling mlist.CheckValues() after the options have been changed (but before the values are printed).
* GetConfigInfo(): Explain that `web_page_url' must end in a singlebwarsaw2000-08-031-1/+1
| | | | slash.
* process(): Local patch for SF bug# 109220; if the autoresponse textbwarsaw2000-08-021-1/+10
| | | | | has a colon in the first line, prepend a blank line so that rfc822.Message doesn't get confused about headers vs. body.
* Updating to the latest Python CVS version of this file. This fixesbwarsaw2000-08-021-19/+19
| | | | | the call to socket.connect() in __init__() to be compatible with Python 1.6/2.0.
* OutgoingMessage.__init__(): Reversing patch 1.35 since this breaks thebwarsaw2000-08-021-12/+4
| | | | | contract with rfc822.Message.__init__() and also breaks news->mail gatewaying. A different patch will be applied to fix SF bug #109220.
* FormatMembershipOptions(): Missed one use of GetScriptURL() - found bybwarsaw2000-08-021-1/+1
| | | | Dan.
* process(): GetAbsoluteScriptURL() => GetScriptURL(..., absolute=1)bwarsaw2000-08-011-1/+1
|
* Cleanups to fix relative/absolute script url calculation in responsebwarsaw2000-08-011-5/+3
| | | | | | | | to SF Bug #110753. Specifically, FormatListinfoOverview(): Use Utils.ScriptURL() instead of GetNestingLevel(), and GetScriptURL() instead of GetRelativeScriptURL().
* Cleanups to fix relative/absolute script url calculation in responsebwarsaw2000-08-011-1/+1
| | | | | | to SF Bug #110753. Specifically, optionslinks() Fix usage of GetOptionsURL() for new interface.
* Cleanups to fix relative/absolute script url calculation in responsebwarsaw2000-08-011-4/+3
| | | | | | | to SF Bug #110753. Specifically, main(), FormatHTML(): Use GetScriptURL() instead of GetRelativeScriptURL().
* Cleanups to fix relative/absolute script url calculation in responsebwarsaw2000-08-011-3/+3
| | | | | | | | to SF Bug #110753. Specifically, PrintRequests(): Use Utils.ScriptURL() instead of GetNestingLevel(), and GetScriptURL() instead of GetRelativeScriptURL(). Also fix usage of GetOptionsURL() for new interface.
* Cleanups to fix relative/absolute script url calculation in responsebwarsaw2000-08-011-17/+14
| | | | | | | | | to SF Bug #110753. Specifically, FormatAdminOverview(), FormatConfiguration(), FormatOptionHelp(), GetItemGuiDescr(): Use Utils.ScriptURL() instead of GetNestingLevel(), and GetScriptURL() instead of GetRelativeScriptURL(). Also fix usage of GetOptionsURL() for new interface.
* Digest.TemplateRefs(): GetAbsoluteScriptURL() => GetScriptURL(..., absolute=1)bwarsaw2000-08-011-1/+1
|