| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
|
| |
interpolation placeholder in the VERP_FORMAT, i.e. everything up to
the first + in the default format.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
least one in the wild (reported by Dan Mick) that leaves the To:
header empty or useless, while the useful VERP'd bounce information
ends up in a Delivered-To: header.
Note that there can be multiple Delivered-To: headers so we need to
search them all (and we don't worry about false positives for
forwarded email, because only one should match VERP_REGEXP).
Also try Apparently-To: if neither of the others yields a hit.
|
| |
|
|
|
| |
module pprint uses repr() instead of str(). This aids in debugging
with bin/dumpdb.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
lists_of_member(): Change the signature to take a MailList object as
the first argument, not a string hostname. This allows
lists_of_member() to filter out the current mailing list, which should
update its attribute the "normal" way.
main(): Use the new lists_of_member() signature where appropriate.
global_options(): The global_enable argument will contain the value
for the setDeliveryStatus() call. I.e. it won't be a boolean flag.
|
| |
|
|
|
|
|
|
| |
attribute in the latter function, only do it in the former function.
Otherwise every time the DATA_FILE_VERSION gets updated, all your
users' nomail options will be cleared. Arrrggghh!
Thanks to Dan Mick for enduring the pain.
|
| | |
|
| |
|
|
|
|
| |
information. We don't need to create a new _BounceInfo instance, just
update some of the existing one's attribute values. Noticed by Dan
Mick.
|
| |
|
|
| |
email addresses requesting subscription or unsubscription.
|
| |
|
|
| |
self.preferred_language.
|
| |
|
|
|
|
|
|
| |
is take as the first argument, less the first domain part. E.g.
add_virtual('www.dom.ain')
uses 'dom.ain' as the emailaddr.
|
| |
|
|
| |
There was a missing quote in the aliases string.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The latter broke the upgrade script when upgrading from MM2.1a2 to
current cvs. This is because bin/update imports Mailman.MailList
which imports Mailman.SecurityManager which, if /that/ tries to
from...import...as will fail with an import error since there's still
a residual old Cookie.py laying around that doesn't have a
SimpleCookie class.
Once bin/update does its thing and gets rid of Mailman/Cookie.py{,c}
we're safe, but for now this is the best way to worm around the
problem.
|
| |
|
|
|
|
|
| |
one if it's missing (most notably qmail). It's easy and correct for
us to add a compliant one.
SF patch #500670 by Jason Mastaler.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
lock acquisition in mailmanctl. Specifically,
_take_possession(): In the while-loop we need to not only check for
linkcount <> 2, but also that the contents of the lock file is our
magic token and not some other process's. This fixes the race
condition.
_disown(): Set the private __owned flag to false so __del__ won't try
to finalize, and thus unlink the lock files. This fixes the reference
counting problem in mailmanctl when both the failing non-forced lock
and the re-aquired force lock both point to the same files.
|
| |
|
|
|
|
|
|
|
|
| |
expansion of d['description'] referenced a local `esender' which, due
to code re-org wasn't defined. Define esender so as to avoid
cross-site scripting exploit.
Second, it wasn't correct to omit the form and submit button any time
there were ?details=... Fix this so that each stanza can decide
whether to add the form or not.
|
| |
|
|
| |
discard_these_nonmembers variable.
|
| |
|
|
|
| |
other search location, use templates/en/* since we know the English
template must always exist!
|
| |
|
|
|
| |
site password, and we're doing AuthSiteAdmin, then issue a secret/key
combination that allows the site password to be cookie-fied.
|
| |
|
|
|
| |
whether we'll issue site authentication cookies or not. Defaults to 0
(i.e. existing behavior).
|
| |
|
|
| |
responsemsg wasn't getting the MIME-Version: header set.
|
| |
|
|
|
| |
because SecurityManager now may want the actual site password, for
(optionally) setting a site cookie.
|
| |
|
|
| |
to the admin message we send out.
|
| |
|
|
| |
confirmation message we're sending to the requester.
|
| |
|
|
| |
Content-Type: headers to the admin message we send out.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Also, in pending subscriptions listing, add a checkbox which will add
the address to the ban_list.
show_helds_overview(): Add a checkbox which will add the address to
the ban_list.
process_form(): Handle adding the address to the ban_list.
|
| | |
|
| |
|
|
| |
DATA_FILE_VERSION: Bump to pick up the new ban_list attribute.
|
| |
|
|
|
|
|
|
|
|
| |
addresses or regular expressions that are matched against the
subscribing address to see if it is banned from this list.
AddMember(): Implement the banned subscription logic. For each item
in ban_list match it against the subscribing address, case
insensitively. If there is a match, raise MembershipIsBanned
exception. If the pattern starts with a ^ it is a regular expression.
|
| |
|
|
|
| |
calling AddMember(). This exception is raised when the subscribing
address is banned.
|
| |
|
|
| |
subscription address feature.
|
| |
|
|
|
|
|
| |
that the failure of one won't prevent the attempt of the other. This
fixes a problem reported by Dan Buchmann where upgrades fail if there
are pre-MM2.1a4 lists that have not received a posting before the
upgrade to MM2.1a4.
|
| | |
|
| |
|
|
| |
getattr(), since they won't exist.
|
| | |
|
| |
|
|
|
|
|
|
| |
pending results), be sure we still save the list!
show_helds_overview(), process_form(): When messages are being held by
a moderated member, give the list admin a chance to clear the moderate
bit.
|
| |
|
|
| |
instead of assuming that DEFER's value is false.
|
| |
|
|
| |
by default, put new members on probation.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
membership_options(): Refactor calculation of adminurl. Also, add a
hack to hide or display the table legend (normally hidden) using
QUERY_STRING extensions. This may not yet play nicely with all the
member chunking extensions.
Add Dan Mick idea to include an indication of the reason for
`nomail'. Use an abbreviation, described in the legend.
|
| |
|
|
| |
assertion. This fixes subscription approvals.
|
| | |
|
| |
|
|
|
|
|
|
| |
the archive url before the first message has been posted to the list.
InitVars(): Write an initial index.html file which just states that
the archive is currently empty. Template comes from
emptyarchive.html.
|
| |
|
|
|
| |
host_name should preceed web_page_url, and the latter should be
composed of DEFAULT_URL_PATTERN and DEFAULT_URL_HOST.
|
| | |
|
| | |
|
| | |
|