summaryrefslogtreecommitdiff
path: root/modules
Commit message (Collapse)AuthorAgeFilesLines
...
* Mention the listinfo URL for the list in the mailcmd help message.klm1998-04-021-3/+10
|
* Whoops - realized that a null regexp (from stripping the empty string)mailman1998-03-311-1/+2
| | | | | would make .HasExplicitDest() return true for every list with an empty acceptable_aliases - fixed.
* Added option DEFAULT_ACCEPTABLE_ALIASES, for alternate names forklm1998-03-312-4/+10
| | | | lists.
* Added companion option for require_explicit_destination -klm1998-03-311-6/+21
| | | | | | | | acceptable_aliases, which designate alternate account names by which this system may be known. This will be useful for lists transitioning from old names (eg, currently happening jpython -> jpython-interest) and for cascading lists, ie lists that are legitemately included by others...
* Small text refinements.klm1998-03-301-8/+5
|
* Adding 'nofail' option to StampedLogger init, so programs that useklm1998-03-301-8/+23
| | | | | StampedLogger for debugging output can choose to initialize it so that failure is detectable, and thus can be handled in the program.
* Add an egregious spammer (actually, just one who happens to make itmailman1998-03-302-2/+4
| | | | past the explicit-destination constraint).
* Comment enumerates private_roster values.klm1998-03-302-4/+4
|
* Change the weird umask (formerly 0700, which left files u-wrx,klm1998-03-301-1/+1
| | | | | | go+rw-x!) for adm.pw to 0022 (u+rw, go+r). I'm a bit shaking about this - think it's right, but seems like the original error is so odd that i may be seeing something incorrectly...
* AddressesMatch(): Do the right thing (in particular, no traceback!)klm1998-03-301-15/+29
| | | | | | | | | | when one of the addresses has no domain. StampedLogger(): New option manual_reprime makes better for use as sys.stderr substitute - says to put the timestamp only on first write or writes just succeeding a .reprime() call - so the timestamp divides separate multi-line entries. And in any case, write the timestamp/label prefix on when at the beginning of a new line.
* Revised subscription list presentation so it is on a separate page.klm1998-03-301-2/+64
| | | | | | | | | | | | | | | | | | | | | The listinfo page now presents a button to get there, and authentication blanks when the list has a private roster of subscribers. This entailed several changes in mm_html, including new methods: - .FormatEditingOption() - Bound to a form replacement to provide the html for the options editing text. Conditionalized to mention the ability to get to user options editing via the subscriber's roster, depending on list privacy options. - .FormatRosterOptionForUser() - Another routine called via text replacements, inserts the text for visiting the roster according to list privacy settings. One nice side effect is that now private list members *can* see the list membership over the web, via entering their authentication info. (Only the admin can see the members of an anonymous list, but they can do that via the web form.)
* Include "manual_reprime" option in StampedLogger. When on (off byklm1998-03-291-5/+22
| | | | | | | | | | | default), timestamps will only be included at beginning of new entries after the first entry and after entries that are preceeded by a call to the .reprime() method. This is handy for when StampedLogger is used as a substitute for sys.stderr, where you would like to see groups of entries collected together in a single timestamp (and you often only have a single group, for uncaught exceptions where the script is failing...)
* Track changes to our defaults, including new default pipermailmailman1998-03-291-3/+1
| | | | location.
* Untangled subscription confirmation cases.klm1998-03-291-22/+28
|
* Send error notice back when we clearly have a list-specific command,klm1998-03-271-22/+45
| | | | | | | | | | like 'who', that is getting an alternate list-name as an argument, instructing sender to use the '-request' address for the list. (This way we can make 'majordomo@site' an alias to, eg, mailman-request@site, and get most of the majordomo@site behavior without implementing any exceptional behavior...) Add a module docstring, wrap a bunch of long lines.
* Unlock only if alredy locked.mailman1998-03-271-1/+1
|
* Swap order on digested and non-digested members, so longer listmailman1998-03-271-8/+13
| | | | (nondgested) is shown second
* Members (digest or non) are sorted only during presentation, not inmailman1998-03-271-0/+1
| | | | | storage on the list. them before presenting an ordered list.
* Do *not* sort the members (digest or non) in the list record - sortmailman1998-03-271-2/+0
| | | | them before presenting an ordered list.
* A bit of refinement for the notices.mailman1998-03-271-11/+13
|
* Finally fix bounce handling so (1) there is an option for users to bemailman1998-03-271-26/+96
| | | | | | | | | | | | | disabled, rather than removed, and (2) that option can be accompanied by email to the admin, or not, but the removal option always entails email to the admin. (Email to the admin was previously not implemented, though there were options that were supposed to do it.) Mostly implemented in new method, .HandleBouncingAddress(), which dispatches to RemoveBouncingAddress() or DisableBouncingAddress(). Improve logging - more terse messages, but more comprehensive coverage.
* Do *not* sort the members (digest or non) in the list record - sortmailman1998-03-271-5/+5
| | | | | | | them before presenting an ordered list. Do not pad subject prefix with a trailing space - but prepare the default one with a trailng space.
* Simpliefied FindMatchineAddress - it now only recognizes similaritymailman1998-03-261-25/+34
| | | | | | | | | | | | | | | | | | when the domain side of the at sign of one address properly contains the domain in the other example. Wrap DeliverToUser body in a os.fork, to prevent a deadlock which can happen when, eg, a message bounces before message aceptance in sendmail. Message bouncing early on in message acceptance by sendmail means reporting to list admin address, which is itself actually a mailman program, which uses the instantiated list as a agent, and which requires the same lock that the invoking process is holding - ie, deadlock Sendmail's deliver-in-background option would be great for this, except that the error processing for immediately recognized delivery problems turns out to be handled in the foreground, regardless of the bg delivery option.
* Handle gracefully user records missing password entries.mailman1998-03-261-2/+5
|
* MMBadUserError for user records that have been corrupted, eg notmailman1998-03-261-0/+1
| | | | | introduced via the standard interface, or changed by finagling of one sort or the other.
* If the lists are going to remain sorted, they must be sorted whenmailman1998-03-261-0/+2
| | | | digestification status changes.
* Various small message refinements, and conditionalized CHANGETEXTmailman1998-03-261-22/+42
| | | | | | | | | to make it easier to run it for just a specific list. Added errorsto keyword args in delivery messages. .MailUserPassword() accounts for corrupt accounts that lack any passwords at all, sends a message to list admin when it observes that.
* Provide for untitled messages in acknowledgement notices.mailman1998-03-261-2/+6
|
* new .Locked() method.mailman1998-03-261-2/+8
| | | | | .ApprovedAddMember(): Do the .Save() before trying to send the subscribe ack.
* In support of bounce-handling mechanism changes, to offer disabling ofmailman1998-03-262-12/+16
| | | | | | | | | user account as an alternative to removal: Option DEFAULT_MINIMUM_POST_COUNT_BEFORE_REMOVAL => DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION. Option DEFAULT_AUTOMATICALLY_REMOVE => DEFAULT_AUTOMATIC_BOUNCE_ACTION.
* Change bounce-handling mechanism to offer disabling of user account,mailman1998-03-261-13/+24
| | | | | | | | | | | | as an alternative to removal: Option minimum_post_count_before_removal => minimum_post_count_before_bounce_action. Option automatically_remove => automatic_bounce_action. New method DisableBouncingAddress(), as alternative to RemoveBouncingAddress().
* In the subscribers list, indicate when a user is delivery-disabled bymailman1998-03-261-3/+9
| | | | italicizing their entry and putting it between parens.
* Changed sense of plain vs mime default digest format buttons, to agreemailman1998-03-241-1/+1
| | | | with default setting.
* Tracked change of names of 'closed' and 'auto_subscribe' options. Seemailman1998-03-241-28/+13
| | | | | | | | concurrent mm_defaults.py checkin for details. Moved basic logger functionality to mm_utils.Logger() and particularly, .StampedLogger(), so it could be used outside of lists, as well as within them via the LogMessage() routine.
* Tracked change of names of 'closed' and 'auto_subscribe' options. Seemailman1998-03-241-6/+7
| | | | concurrent mm_defaults.py checkin for details.
* Tracked change of names of 'closed' and 'auto_subscribe' options. Seemailman1998-03-241-1/+31
| | | | | | | | concurrent mm_defaults.py checkin for details. Added FormatSubscriptionMsg(), which generates text describing the current list's subscription approval, roster privacy, and post vetting policies.
* Moved truncate and close of digest_file and topics_file to *just*mailman1998-03-241-15/+20
| | | | | | | before the delivery, so the accumulated messages are not removed until the first copies are about to be sent. Refined digesting log messages.
* Changed 'system' category log message to 'error'.mailman1998-03-241-1/+1
|
* Added logger and moved SendTextToUser and DeliverToUsermailman1998-03-241-4/+107
| | | | | | | | | | | | | | | | | | functionalities here. Logger() and StampedLogger() routines provide file-like file logging mechanisms. (I reimplmented the list .LogMsg() method based on this routine.) This is implemented outside the list infrastructure so it can be used for, eg, stderr substitution. SendTextToUser() and DeliverToUser() implemented here likewise, so they can be used outside list context (eg, when lists are broken...). Made AddressesMatch not raise error when one of the address arguments yields a null domain. Moved comment about .FindMatchingAddresses() to be the function docstring.
* Added implementation of 'discard' admin options to requestmailman1998-03-241-3/+8
| | | | | dispositions - for spam, it doesn't send email to poster, just discards their posting.
* Changed names of 'closed' and 'auto_subscribe' options!mailman1998-03-242-6/+8
| | | | | | | | | | | | | | | | | 'closed' => 'private_roster'. 'Closed' was being used to control whether the roster of list members was to be visible to non-list members, but is used elsewhere (in mailman explanations for subscription deferrals, as well as in majordomo and other maillist system parlance) to refer to whether the subscription policy requires admin approval or not. 'auto_subscribe' => 'open_subscribe'. This is the option that controls whether or not the list is closed - 'open' is more clear than 'auto' - i would have switched to 'closed', but saw no need to have the name refer to the *much* less common case, and didn't want to change the default sense of the option. Added listme.com to the roster of forbidden spam posters.
* Moved essential functionality of .SendTextToUser() andmailman1998-03-241-39/+35
| | | | | | | | .DeliverToUser() methods to functions in mm_utils, so we can use them outsid of lists, eg when we're unable to create lists, and then used the functions in the body of the methods. Refined subscribe-message text a bit.
* Add __del__ to close the log_files that were retained across themailman1998-03-201-0/+4
| | | | | | maillist session. I was running out of file descriptors in the extensive map_maillist() type activities. Not sure if it's the log files, but it can't hurt.
* map_maillists() - New convenience routine for interactive pythonmailman1998-03-201-0/+26
| | | | | | | | sessions with lists, applies user specified routine to all of the lists, or optionally, those lists with user-specified names. Optional arg unlock says to unlocked immediately after instantiation, for non-invasive actions. Optional arg verbose says to print list name and result incrementally as they're handled.
* Refined admin vette logging a bit.mailman1998-03-201-7/+7
|
* Looks like bounce handling does not work like options advertise - inmailman1998-03-201-7/+7
| | | | | | | | | | | | | | | | | | | particular, "Don't remove, notify me" still *does* do the removal. Sigh. The right way to set this up will take some thought, but i think my first cut fix will be, when this option is selected, to just disable the user, and send a note to the admin. That way, the admin won't just get extra notes accompanying continuing bounce results for the user... I may get to this quick fix soon. The long term (and fairly attractive) fix is to make a bounce-handling subsystem which collects bounce messages and classifies them according to a admin-configurable template, taking actions like disabling or removing the user, notifying the admin, etc, when admin-configured thresholds are reached. The admin interface could be handled very like the admin-requests mechanism, with a page for bounce administration and a periodic notice of pending bounce admin stuff.
* Log a message if digest file is unlocatable.mailman1998-03-201-14/+32
| | | | In general, use .LogMsg() instead of arbitrary digest.log file.
* This is the fix i mentioned in my last checkin (not mm_digest).mailman1998-03-201-13/+28
| | | | | | | | | | | | | | | Use a python-lib tempfile, instead of ginning one up distinguised by pid. The problem with the old method is that the same process - eg, senddigest - may be cycling through many lists, which means that all the lists would use the same tempfile name. And deliver, having opened the file for reading, would get it pulled out from under it when, eg, senddigest got to having mm_deliver prepare digest for the next list. tempfile.mktemp() specifically finds a filename that is not in use. I'm leaving in commented-out text for some special membership- migration notices, for use later today or tomorrow, when i move over the rest of the lists.
* _cur_line, not _curline. (Looks like this file isn't being used,mailman1998-03-191-1/+1
| | | | because it arrived broken?)
* Whoopsie! Put a paren in the wrong place, ok now.mailman1998-03-191-3/+3
|