| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
dunno what changed there. In mm_mailcmd, I fixed a bug w/ Scott's
code, so that if a reply comes back with no body, the confirm still
works. I don't know why he was checking the body and not just the
header for the pattern, but I left that check in there in case he
had a good reason.
|
| |
|
|
| |
recipients could be a string or a list of strings...
|
| | |
|
| | |
|
| |
|
|
| |
'misc' => 'data'
|
| | |
|
| |
|
|
| |
in pending...
|
| | |
|
| | |
|
| |
|
|
|
| |
Mailman is now sendmail independant, except that it spits out
sendmail aliases w/ newlist...
|
| |
|
|
|
| |
Note that I'm using my smtplib right now, and not the one that comes
w/ Python 1.5. That should probably be changed.
|
| | |
|
| |
|
|
| |
mm_cfg.py
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hope I merged in all the latest changes!
Added Emacs turd added to top of file.
RCS crud removed
Added PYTHON variable which holds the absolute path to the configure
discovered Python interpreter.
Added PREFIX and EXEC_PREFIX variables which hold configure's
equivalents of --prefix and --exec_prefix (module autoconf 2.12
buglet).
LIST_DATA_DIR, HTML_DIR, CGI_DIR, LOG_DIR, LOCK_DIR, WRAPPER_DIR,
SCRIPTS_DIR, TEMPLATE_DIR, PUBLIC_ARCHIVE_FILE_DIR,
PRIVATE_ARCHIVE_FILE_DIR: All moved to the bottom of this file since
users will not typically edit these or the paths they are based on any
more. All are calculated relative to PREFIX and EXEC_PREFIX as given
by configure.
VERSION is also moved to the bottom of the file. This is also
generated by configure. The nice thing here is that configure.in is
the only file that need be changed when the version number changes.
|
| | |
|
| |
|
|
|
|
|
|
| |
Removed RCS crud
Removed HOME_DIR and MAILMAN_DIR variables. Users should not need to
modify these anymore, since configure will calculate these correctly
and put them into the generated mm_defaults.py file.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wrap(): New function which implements the wrapping and filling
algorithm, as described in the function's docstring. After talking it
over with Guido and Ken, this seemed like the best compromise for
ensuring that emailed messages to users look okay, when their MUAs
don't auto-wrap.
SendTextToUser(): Added optional argument raw which defaults to zero
(meaning by default, wrap and fill as per the rules in wrap()). When
raw=1, no wrapping or filling of the text argument is performed.
While Ken thinks that wrapping/filling should be turned off by
default, I think there are many more cases where the text should be
wrapped and filled than not, so this go'round tries to minimize code
changes. If the consensus is to invert the default value, we can make
that change after grep'ing the code.
|
| |
|
|
|
| |
different variable from mm_cfg. The file location is stored in
SITE_PW_FILE.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Removed RCS crud
In any text sent to the user, substitute `maillist' with `mailing list'
SUBSCRIBEACKTEXT: All %s substitutions are replaced with $(varname)s
substitutions with the corresponding dictionary interpolation added in
Deliverer.CreateSubscribeAck(). With too many %s substitutions, it
gets too hard to keep track of the right number of %s's and their
proper substitution.
Deliverer.SendTextToUser(): Added optional raw argument, defaulted to
0 (meaning default is to wrap/fill -- I know KLM and I disagree about
this ;-). This argument is passed straight through to
mm_utils.SendTextToUser().
Deliverer.DeliverToList(): When calculating the command to os.popen(),
include as the first argument the configure calculated path to the
Python interpreter to use. It is possible that `python' is not on the
path when this gets executed (or that the wrong interpreter will be
found).
Deliverer.CreateSubscribeAck(): Use dictionary interpolation. Also,
The header message seems redundant and unnecessary to me, so I removed
it.
|
| |
|
|
|
| |
Archiver.InitVars(): Small rewrite of self.archive_directory
calculation.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
(SUBSCRIPTION_AUTH_TEXT, POSTING_AUTH_TEXT): Some small, but important
formatting changes. The wrapping/filling algorithm says not to fill
any lines that begin with whitespace, so for the two embedded lists
that shouldn't be filled, start the lines with a couple of spaces.
RefuseRequest(): Call SendTextToUser() with raw=1 so that the text of
the original message will not be wrapped/filled. Some of the text
should probably be wrapped/filled but that's too hard to separate out
right now.
|
| |
|
|
|
|
|
| |
Slight docstring rewrite
MailList.__init__(): When raising an MMUnknownListError, include the
given list name in the value.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
addr if new list option reminders_to_admins is set.
|
| |
|
|
|
|
|
|
|
| |
user's corresponding "-owner" address - this is for lists that have
only other lists as members. This way, the reminders don't get
posted. (When we have scott's alternate-address confirmation stuff
integrated we may not need this, but i don't know if i'll have time to
do that before then end of the month, when the password reminders are
delivered.)
|
| |
|
|
|
|
|
|
| |
candidates structure, so the addresses are all pre-processed similarly
(but the actions are still HandleBouncingAddress() or
RegisterBounce()).
Fixed a few bounce log messages that were missing some context.
|
| |
|
|
| |
member's account name, not "-owner".
|
| |
|
|
|
|
|
|
|
|
|
| |
"obscured" is set. (Turns out that this routine is so far used only
in places where the unobscured URL is fine. mm_utils.ObscureEmail()
is generally used when the obscured addr is needed.)
reminders_to_admins: New list option that says to send the password
reminders to the user's corresponding "-owner" address - this is for
lists that have only other lists as members. This way, the reminders
don't get posted.
|
| |
|
|
|
|
|
| |
do so.
Added a copy of the GNU GPL.
Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
different line than the cue. Thus we have to use two separate checks:
- One regex, 'separate_cue_1', to identify this as an failure notice.
The flag var, 'check_prospects', is set if this regex triggers.
- Another regex, 'separate_addr_1', adds the addr to prospects if
triggered.
Prospects are only used when 'check_prospects' has been set, to ensure
that the message being examined is in fact a failure notice.
(The two hosts i'm dealing, parrot and glyph, happen to run run
berkeley sendmail 8.8.5, which happens to issue failure notices like
this. I would not be surprised if more recent sendmails did, too...)
|
| | |
|
| |
|
|
| |
field to better explain where it is used.
|
| |
|
|
|
|
|
|
| |
the remaining number of bounces a member is allowed (within the
stipulated time frame) before exceeding the limit. If this is right,
with the other bounce-handling refinements i feel a lot more confident
about predicatable, well-mannered behavior from the bounce management
stuff...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bouncing address - before sending the notice, check whether the
bouncing address is among the list owner addresses.
And otherwise, include (attach) a copy of the actual bounce notice in
the admin-action message. Otherwise there is no record the
administrator can examine.
Finally, send both failed and successful admin-action notifications to
the list administrator. Before, failed action (e.g. inability to
locate the specific user) were sent to the mailman site admin - this
was while i was debugging the bounce handling, but it looks a lot
better now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
ScanMessage(): added final-step massage of all candidates to remove
encompassing <, > angle brackets, if any, and check against already
processed candidates.
(In order to change something to enable a checkin i made a spelling
change of something trivial that i resisted for a while - substituted
"message_grokked" for "message_groked". I'm pretty sure the double k
is right, but don't have a copy of stranger in a strange land happy to
check. Anyway, i keep reading "groked" like it would rhyme with
"stoked", which just can't be right...-)
|
| |
|
|
|
|
|
|
|
|
|
| |
disabled. The idea is that numerous outstanding bounces do not each
require renotification of the admin.
DisableBouncingAddress(), RemoveBouncingAddress(): changed return
signatures to indicate whether email notification is necessary for
this action, and in Disable version, indicate not necessary when user
is already disabled. In all other cases, notification is indicated,
whatever the status.
|
| |
|
|
|
|
|
|
|
| |
prominently point out when the user's delivery is disabled. (When a
user's email is disabled due to bounces, they probably would not
notice the checked button way down the page.)
Using "from htmlformat import *" to simplify references to formatting
objects.
|
| |
|
|
| |
well as the rest of the stuff.
|
| |
|
|
| |
default message footer.
|
| |
|
|
|
| |
separates a detail elaboration from the brief description, so its lack
made the two into a long brief description).
|
| |
|
|
|
| |
Changed mailman URL to point to john's site, and included a comment
explaining what it is for.
|
| |
|
|
| |
is doing the right thing right off the bat.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Digest messages now keep all headers except 'received',
'errors-to', and all 'x-*' ones (and any continuations of these).
- Mime digest messages now properly (i believe) contain mime
attachments. (The key was preserving the original content-type
header.)
- It may be that some more headers should be trimmed, ie for the sake
of the non-mime recipients - but actually, it doesn't look
cluttered, for the few sample messages i tried.
- The entries in the table-of-contents have the redundant
subject-prefix string removed.
Digest: Redundant "Vol" in masthead string removed.
I took a look at rfc 934 (thanks, barry), which is the pre-Mime standard
for encapsulating (nesting) messages in other messages, and it looks
like the key is to have an "encapsulation boundary" that starts with a
"-" dash - looks like mime extended from this. However, the old rule
for nesting an encapsulated message within another encapsulated
message is to insert a "- " space in front of the original
encapsulation boundary. Unfortunately, this would break mime
encapsulation, so i'm not implementing this part of the old
burstable-digests standard. The rest of it *may* be ok, though, in
case anyone has the old-style bursting readers...
Anyway, i've done about as much as i was hoping to do with the digests
format - i don't forsee devoting much more attention to features, just
to ironing out bugs.
|
| | |
|