summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* HoldUnsubscription(): Pass the list's preferred language to thebwarsaw2002-03-011-14/+20
| | | | | | | | UserNotification constructor so that the admin gets the unsub request notice in the proper language. __refuse(): Be sure to create the Subject: header and other i18n text in the language of the recipient of the rejection message.
* AddMember(), ConfirmUnsubscription(): We have to handle the confirmbwarsaw2002-03-011-4/+8
| | | | | | | | cookie Subject: header the same way we do for ChangeMemberAddress(). That is, we can't set this header in the UserNotification constructor, but have to add it in afterwards, so the header doesn't get encoded (a reply to the encoded confirm header will bollux up MailCommandHandler).
* install: Don't try to create a pending_subscriptions.db file; it'sbwarsaw2002-02-281-1/+0
| | | | been obsolete for a long time now.
* __sendAdminBounceNotice(): Because the UserNotification constructorbwarsaw2002-02-281-4/+8
| | | | | | | | | | | already sets the Content-Type: and MIME-Version: headers, don't do it explicitly (it'll add multiple headers). Instead just call set_type() to set the type to multipart/mixed. (Must do that before attempting to attach.) sendNextNotification(): Because we do not want the Subject: to be encoded, don't pass the subject into the UserNotification constructor. See MailList.ChangeMemberAddress() for details.
* ChangeMemberAddress(): Pass the member's language into thebwarsaw2002-02-281-4/+14
| | | | | | | | | | | | | | | | | UserNotification constructor so that the verification message gets encoded correctly. There's one gotcha that affects all confirmation messages (and I will audit this next). From the comment: # BAW: We don't pass the Subject: into the UserNotification # constructor because it will encode it in the charset of the language # being used. For non-us-ascii charsets, this means it will probably # quopri quote it, and thus replies will also be quopri encoded. But # MailCommandHandler doesn't yet grok such headers, and I'm avoiding # fixing that until a future version which will completely rewrite the # mail command handling. So, just set the Subject: in a separate # step, although we have to delete the one UserNotification adds. Sigh.
* process_form(): i18n fixes. The privacy alert message should be sentbwarsaw2002-02-281-6/+13
| | | | | | to the user in his/her own language, but as this may be different than the list's preferred language, we have to wrap the message creation in a try/finally which sets and restores the list's language.
* create(), remove(): Use -unsubscribe as the longest string to pad thebwarsaw2002-02-281-6/+10
| | | | | | | | alias field against. Also, send all alias file change requests to mailman-owner (actually the site email's -owner address) so that it has a better chance of getting to a human. Finally, in the UserNotification constructors, use the DEFAULT_SERVER_LANGUAGE (hmm, I wonder if this should use the language of the site list?).
* main(): Pass the list's preferred language to the UserNotificationbwarsaw2002-02-281-3/+4
| | | | constructor so that the message gets the proper charset settings.
* main(): A couple of i18n fixes. In order to translate the Subject:bwarsaw2002-02-281-4/+14
| | | | | | | | header into the same language that the password reminder body is getting translated to, we need to temporarily set the i18n language around the calculation of the Subject: header. We also need to pass the user's suspected language <wink> into the UserNotification() constructor.
* A few last minute fixes for bugs in email 1.1bwarsaw2002-02-281-0/+0
|
* hold_for_approval(): Instead of using add_header to set to set thebwarsaw2002-02-281-4/+3
| | | | | | | Content-Type: header, and since we should be setting the charset anyway, on the message that goes to the admin, set the lang argument to the UserNotification, and then just set the type (via set_type()) to multipart/mixed.
* UserNotification.__init__(): If there's no text argument given, butbwarsaw2002-02-281-1/+4
| | | | | | | | | there was a lang argument given, call self.set_charset() instead of doing nothing. Note that when a text argument is given, set_charset() is called implicitly by set_payload(). Otherwise, given lang but no text results in no MIME-Version: header being set.
* __sendAdminBounceNotice(), sendNextNotification(): Bothbwarsaw2002-02-281-2/+3
| | | | | | | | | | | UserNotification constructor calls were passing in the language as a positional argument, in the position where the text should have been. But because both instances has no text, the proper fix is to use the `lang' keyword argument. This fixes one i18n related crash, and the last one I'm going to commit tonight. I've audited all the other UserNotification call sites and there are more fixes coming down the pike.
* Update the email package to version 1.1, and make the correspondingbwarsaw2002-02-283-1/+1
| | | | fix to the Makefile.in file.
* DATA: Add a test of the HotPop bouncebwarsaw2002-02-281-1/+2
|
* Urg. Bump copyright years.bwarsaw2002-02-281-1/+1
|
* patterns: Added a recognition of HotPop bounces. Donated by Dan Mick.bwarsaw2002-02-281-0/+4
|
* A bounce sample from Dan Mick from hotpop.com.bwarsaw2002-02-280-0/+0
|
* intermediatebwarsaw2002-02-281-0/+181
|
* _getValidValue(): Fix the tests for EmailList and EmailListEx, andbwarsaw2002-02-281-9/+17
| | | | | also add a sanity check for any regular expressions (i.e. make sure that re.compile() doesn't fail on them).
* add_error_message(): Removed as a duplicate of Document.addError().bwarsaw2002-02-281-30/+32
| | | | | | | | | | | Change all calls of add_error_message() to doc.addError(). main(): Fix the error reporting when no email address is given. Also, rework the error reporting for when the login page's unsub or remind buttons are used. Specifically, when rosters are public, we should provide error messages when the given address is not a member, but when rosters are private, lie about the confirmation message or password reminder.
* Document.addError()'s tag argument's default value is now "Error: " sobwarsaw2002-02-281-10/+7
| | | | change the call sites accordingly.
* Document.addError(): Make the default tag be "Error: " since that'sbwarsaw2002-02-281-1/+1
| | | | the most commonly used tag.
* __verpbounce(), __scanbounce(): Make sure that we don't try to lock abwarsaw2002-02-281-4/+12
| | | | | | | | list that's already locked, e.g. the site list that we know we're processing for! Bug reported by Dan Mick. BAW: The loop in these two methods should really be factored out, but there's a bit of an impedance mismatch for the inner logic.
* Set DEFAULT_PRIVATE_ROSTER to 1 since that's just too tempting abwarsaw2002-02-271-1/+1
| | | | | | | target for harvesters, and we have doubts as to how much this feature is used. Note: this does not change anything for existing lists.
* send_digest_now(): Return a boolean flag specifying whether a digestbwarsaw2002-02-271-1/+3
| | | | | was sent out or not. This lets the admin page for example, display a nice status message.
* get_valid_value(): Removed. This has all been moved into thebwarsaw2002-02-271-116/+4
| | | | | | | | | | | | | | | Mailman/Gui/GUIBase.py module. get_item_gui_value(): The gui component API has changed; use getValue() instead of GetValue(). change_options(): We can really simplify a lot of this method because the actual changing of the properties, value verification, and special overrides are now all handled in the gui components themselves. We now need only call out to the gui.handleForm() method. Eventually, the membership management page should use the same mechanism.
* Somehow (and I'm not sure how), the GUIBase class gets exposed in thebwarsaw2002-02-271-1/+4
| | | | | package scope. Delete it, because it messes up the automatic instantiation policy in MailList.InitTempVars().
* Use GUIBase as the base class.bwarsaw2002-02-271-2/+11
| | | | | _setValue(): New overridden method which handles the special "do immediately" attribute.
* Use GUIBase as the base class.bwarsaw2002-02-271-5/+7
| | | | | HandleForm() -> handleForm(). Also, if a topic definition is rejected for being incomplete, add an error message to the page.
* Use GUIBase as the base class.bwarsaw2002-02-271-1/+10
| | | | | _setValue(): New overridden method which handles the special case when ALLOW_OPEN_SUBSCRIBE is set.
* Use GUIBase as the base class.bwarsaw2002-02-271-3/+4
| | | | HandleForm() -> handleForm()
* Use GUIBase as the base class.bwarsaw2002-02-271-57/+16
| | | | | | | | | HandleForm(): Remove, obsolete API. Also removed handle_form() module global. _setValue(): New overridden method for handling the conversion from $-strings to %-strings and doing substitution variable verification. Most of the functionality is in the base class now.
* Use GUIBase as the base class.bwarsaw2002-02-271-3/+13
| | | | | _setValue(): New overridden method which handles setting the global i18n context when the list's preferred_language changes.
* Use GUIBase as the base class.bwarsaw2002-02-271-2/+14
| | | | | | _setValue(): New overridden method which handles the assertion that the real_name attribute may differ from the internal name by case only.
* Use GUIBase as the base class.bwarsaw2002-02-271-5/+30
| | | | | | | HandleForm(): Remove, obsolete API. _setValue(): New overridden method which handles the special "do immediately" attributes.
* Use GUIBase as the base class.bwarsaw2002-02-271-32/+25
| | | | | | | | | HandleForm(): Remove, obsolete API. Also remove __convert() as obsolete. _setValue(): New overridden method converting the bounce values from the web presentation units to the internal units. GetValue() -> getValue()
* Use GUIBase as the base class.bwarsaw2002-02-271-46/+14
| | | | | | | | HandleForm(): Remove, obsolete API. _setValue(): New overridden method for handling the conversion from $-strings to %-strings and doing substitution variable verification. Most of the functionality is in the base class now.
* Use GUIBase as the base class.bwarsaw2002-02-271-3/+3
|
* Base class for all GUI component classes.bwarsaw2002-02-260-0/+0
|
* intermediatebwarsaw2002-02-261-0/+183
|
* main(): The .Save() call should be in the try: clause.bwarsaw2002-02-261-2/+2
|
* _dispose(): We need to use msg.as_string() to flatten the message tobwarsaw2002-02-261-2/+2
| | | | | | plain text instead of msg.__str__(), otherwise we'll get the Unix From_ header in the output, which will bollux up NNTP. Bug discovered and fix verified by Ron Jarrell.
* process(): Ignore all values of X-No-Archive: header; it's merebwarsaw2002-02-261-5/+5
| | | | presence is enough to avoid archiving the message.
* Don't count on a tar supporting a `z' option. Instead use gunzip tobwarsaw2002-02-241-2/+1
| | | | uncompress the email package tarball.
* Untabbification. :(bwarsaw2002-02-231-188/+188
|
* remove_old_sources(): Add smarts to remove old directories too.bwarsaw2002-02-231-8/+10
| | | | main(): Remove $prefix/Mailman/pythonlib.
* ARCH_INDEP_DIRS: Remove the Mailman/pythonlib directory, but add thebwarsaw2002-02-231-3/+3
| | | | $prefix/pythonlib directory.
* Mailman/pythonlib no longer "exists".bwarsaw2002-02-232-5/+111
| | | | | Also, add Ben Gertzfield's patch to produce warnings if the Japanese and Chinese codecs aren't found.
* WHITESPACE -> whitespace everywhere.bwarsaw2002-02-231-8/+72
| | | | | | | | | | | | | | | | | | | ValidateEmail(): Add Dan Mick's suggestion to throw out email addresses with embedded spaces in the (although the calculation of such is done a bit differently). This may not be a complete solution because any address that's first sent through email.Utils.parseaddr() will have embedded spaces collapsed anyway by rfc822.py's similarly named function. That latter is a bug that needs to be fixed in Python, but that's not a high priority right now. Also note that "this is an email address"@dom.ain is (probably) legal and is handled correctly by parseaddr() but will still be rejected by ValidateEmail(). I think that's fine, as anybody who's got embedded spaces in their address is probably going to have a miserable life anyway. to_dollar(), to_percent(), dollar_identifiers(), percent_identifiers(): New functions to support experimental $-string substitutions, and conversions between %-strings and $-strings.