| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1 by default. This instructs the MailList.Post() method to use first
the envelope sender (i.e. Unix "From " line) and then the From:
header. However, this breaks member_only_posting on some systems (for
reasons unknown). Set this variable to 0 in mm_cfg.py to use only the
From: header, although this can open the list up to spam.
(MailList.py): in Post(), check USE_ENVELOPE_SENDER to see if
GetEnvelopeSender() should be called.
(FAQ): Add a question refering to USE_ENVELOPE_SENDER.
|
| | |
|
| |
|
|
| |
it's a string.
|
| |
|
|
| |
`general' category page. The others are just too noisy.
|
| |
|
|
|
|
| |
- member management page should display case-preserved email addresses
(but still sort case-insensitively). Also, addresses should be
links to member options page.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
moved to NEWS and removed.
|
| |
|
|
| |
process.
|
| |
|
|
|
|
|
|
|
|
|
| |
digest_members onto one_last_digest attribute. This attribute is
checked in SendDigest().
SendDigest(): Add the members in one_last_digest attribute to the
digest recipients. This means that folks who turn digests off at
least don't lose messages. This is a kludge but it was much harder to
send the digest to the user when they undigest, so this is a workable
compromise.
|
| |
|
|
| |
user may get one last digest.
|
| |
|
|
| |
whole message as <MM_Case-Preserved-User> replacement).
|
| |
|
|
|
|
|
|
|
|
| |
will contain the entire case-preserved message, if one exists.
Also, added some text explaining that if digests are turned off, one
last digest will be sent to the user.
Yeah, this means site admins will have to copy options.html into each
lists/<listname> during the upgrade.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
user (if different than their lowercased address). This could be done
better if lists didn't have their own copies of options.html :-(
|
| |
|
|
|
| |
as their lowercased address, then the key in self.members is 0. Watch
out for this situation.
|
| |
|
|
|
|
|
| |
Stick a `fromusenet' attribute on the msg object, value taken from
whether there is a magical second argument to the post script (only
happens from GatewayManager). Also post message with approved flag
set to fromusenet, so message originating on Usenet are pre-approved.
|
| |
|
|
|
| |
not post the message to Usenet) is now whether the msg object has an
attribute `fromusenet' and this attribute is true.
|
| |
|
|
|
|
|
|
|
| |
lowercased match. I think the idiom is
casepreservedaddr = mlist.members.get(self.FindUser(caseanyaddr))
This seems to fix the problem of getting your password mailed back to
you when you've subscribed with an uppercase username part.
|
| |
|
|
|
|
|
| |
should use FindMatchingAddresses(). I think it should, so I've made
that change.
Also, farther down, just changed some inconsistent indentation.
|
| |
|
|
| |
stdin (in addition to those specified on the command line).
|
| |
|
|
| |
from stdin. Specifying both files as "-" is an error.
|
| |
|
|
| |
statement -- this wasn't the case when running under Python 1.5.
|
| |
|
|
| |
* Replaced "vmailer" with "Postfix" (which is the proper name).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the regexp specifying a list alias doesn't compile, match against
the re.escape(invalid_regexp) instead.
MailList.parse_matching_header_opt(): Only return triples having
compileable regexps. If some line in `bounce_matching_headers'
results in an invalid regexp, this is logged and ignored (possibly a
lot of times, until the misconfiguration is fixed).
Also, the re.split() on the lines in `bounce_matching_headers' is
now called with third arg `maxsplit' set to 1 to avoid splitting the
header lines more than once. I don't have any Python prior to 1.5.1
handy, but my copy of the Library Reference states that this
argument was ignored in the original 1.5 release -- implying that it
existed.
|
| |
|
|
|
|
|
|
|
|
| |
calling CGI script was invoked with.
Uses (non-standard, but convenient) environment variable REQUEST_URI
when available, otherwise SCRIPT_NAME and PATH_INFO (which are part
of the CGI/1.1 spec) if available, or simply returns optional
argument `fallback' (which defaults to None).
Cgi/admin.py, Cgi/admindb.py: Use it when generating admin
authentication page.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
(index.html): point it to the faq.html file
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
extension needs to be added to script path.
|
| |
|
|
| |
added to script path.
|
| |
|
|
| |
extension needs to be added to script path.
|
| |
|
|
| |
script.
|
| |
|
|
|
| |
extension onto all script paths generated by these functions. This
takes care of about 90% of the support for CGI extensions.
|
| | |
|
| |
|
|
|
| |
subsystem to use the given extension. The extension given to this
option must include the dot.
|
| |
|
|
| |
and password before parsing the arguments.
|
| |
|
|
| |
using qmail with Mailman.
|
| |
|
|
|
|
| |
removed. We don't limit MTAs to sendmail anyway.
main(): Use the proper exitcode when calling fatal().
|
| |
|
|
|
|
| |
permission/security sense so this is unnecessary. Also, if
run_script() returns, use its return value as the exitcode for
fatal().
|
| |
|
|
|
|
|
|
|
|
| |
use in the exit() call. Useful for debugging.
check_caller(): Use GID_MISMATCH as fatal exit code.
run_script(): If setregid() returns !0, use SETREGID_FAILURE as fatal
exit code. Also, it is always an error for execve() to return.
Return EXECVE_FAILURE from this function.
|