| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
| |
queue.
|
| | |
|
| |
|
|
| |
scripts.
|
| | |
|
| |
|
|
| |
declared global.
|
| |
|
|
|
|
|
|
|
|
| |
MessageParseError during parsing of the message. Most likely cause is
because of bad MIME encapsulation. /That's/ likely caused by the
message being a virus <wink>.
Disposition depends on QRUNNER_SAVE_BAD_MESSAGES. When true, the
message text is saved in qfiles/bad. When false, it is discarded. We
always log the error.
|
| |
|
|
|
| |
not making it to the end of the try ought to be morally equivalent to
an aborted transaction.
|
| |
|
|
| |
the queue directory to inject to, defaulting to qfiles/in.
|
| |
|
|
|
|
| |
QRUNNER_SAVE_BAD_MESSAGES. The latter controls what Mailman should do
when it encounters a parse error on the email message (likely because
of bad MIME encapsulation, itself likely because it's a virus).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
return a generator, which doesn't have a pop() method. Always convert
it to a concrete list object first.
|
| |
|
|
|
|
| |
interpolation variables that are allowed in headers and footers.
Translators: this needs updating.
|
| |
|
|
|
|
| |
trick Python into potentially revealing too much information. So
instead of using the MailList's __dict__ and removing known sensitive
entries, we create a whitelisted dict with only known safe entries.
|
| | |
|
| |
|
|
|
|
|
|
| |
__opendb(): Catch EOFError that marshal.load() could throw. In that
case, log the error and blow away the old database.
__closedb(): A more robust save of the requests.db file. Save to a
temp file first and then atomically os.rename() it to the real file.
|
| |
|
|
| |
that key is obsolete.
|
| |
|
|
|
| |
form data, because that key is obsolete. In change_options(), removed
Scott's way old comment since I think it's no longer applicable.
|
| | |
|
| | |
|
| |
|
|
|
| |
member_moderation_action and member_moderation_notice. Also, add a
separator for "Member filters" vs. "Non-member filters".
|
| |
|
|
| |
member_moderation_notice.
|
| |
|
|
| |
member_moderation_action and member_moderation_notice.
|
| |
|
|
| |
member_moderation_notice.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
possible to assign an action to the flag, which ought to work better
for e.g. announce-only lists. Specifically,
process(): If we're looking at a member and that member has their
moderation flag turned on, then we look at
mlist.member_moderation_action. This is a 3-way selector specifying
whether the message should be held for approval, rejected (bounced),
or discarded. There's also a member_moderation_notice attribute which
includes text to send back to the member when their posting is
automatically rejected (WIBNI we could include that text in any held
or discard notification? Too much code disruption to do that right
now).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
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.
|
| |
|
|
|
| |
script as "python -i ..." to get a prompt after the primary processing
is done. I'd forgotten about the code.InteractiveConsole class!
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|