| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
sending the unrecognized message on to the list owner. In either
case, write a log entry to logs/bounce.
|
| |
|
|
|
|
|
|
| |
this category doesn't really contain any detection configurations.
Translators beware!
GetConfigInfo(): Added support for
bounce_unrecognized_goes_to_list_owner.
|
| |
|
|
| |
attribute.
|
| |
|
|
| |
bounce_unrecognized_goes_to_list_owner attribute.
|
| |
|
|
| |
bounce_unrecognized_goes_to_list_owner attribute.
|
| |
|
|
|
| |
whether the list owner gets unrecognized bounces addressed to -bounces
and -admin.
|
| |
|
|
|
| |
is only attempted if a previous VERP decision hasn't been made.
Specifically, I changed "msgdata.get('verp')" to "msgdata.has_key('verp')"
|
| | |
|
| |
|
|
|
|
| |
try/except for IndexError. If the site admin's configured VERP_REGEXP
incorrectly, it's better to provide a more useful error message in
log/errors and ignore the bounce than to let a traceback percolate up.
|
| |
|
|
|
|
|
|
| |
variables in the string. First, change the error message and make it
a warning instead of an error (we're not going to discard their
changes, and besides, it might have been caused by a change to a
different property). Second, return the val so the change isn't
thrown away.
|
| |
|
|
|
|
|
| |
msg_footer appear after personalization. This is a minor bogus order
dependency so that headers/footers with personalization substitution
variables won't get improperly flagged as errors when transitioning
from non-personalization to personalization-enabled.
|
| |
|
|
|
| |
slash to avoid an http redirect and second query. However, just add
it if it's not already there.
|
| |
|
|
|
| |
ignore members that may have been deleted via other means during page
hits.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
loop addresses don't get written.
_do_create(): Fixed this so that the check for loop addrs happens
after the original files get closed (otherwise they'd be zero
lengthed).
Also, fixed some formatting issues.
|
| | |
|
| |
|
|
| |
converted to the Site module abstractions.
|
| | |
|
| |
|
|
|
|
| |
Don't use PUBLIC_ARCHIVE_FILE_DIR and PRIVATE_ARCHIVE_FILE_DIR
directly, use the archive_dir() method or the Site module methods
instead.
|
| |
|
|
|
| |
Utils.list_exists(), Utils.list_names(): Don't use LIST_DATA_DIR
directly, instead use Site.get_listpath() and Site.get_listnames().
|
| |
|
|
|
|
|
| |
- use fullpath() instead of _full_path directly
- Don't os.path.join() up the list path, instead use
Site.get_listpath()
|
| |
|
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
process(): Add the X-Mailman-Copy: header if we're personalizing
messages and this recipient has decided to not to filter out dups. As
far as the public is concerned, "copies" are good, "duplicates" are
bad. :)
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
This module handles filtering out duplicates for explicit recipients.
Rewritten by Barry to remove the dup filtering on cross posted
messages (Ben may re-port those changes separately).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
(Note: this patch was rewritten by Barry; parts of it was originally
in GUIBase, but that wasn't the right place for it.)
Specifically,
GetConfigInfo(): Add support for the new_member_options attribute,
which is a checkbox that the list owner can use to select the initial
values for the member options fields.
_setValue(): Handle setting the new_member_options attribute by
converting it from a list of option names to a bitfield.
|
| |
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
main(), options_page(), global_options(): Added support for the
nodupes option, including setting nodupes globally.
|
| |
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
OPTCOLUMNS: Let's parameterize this.
membership_options(): Add a column for the nodupes field.
|
| |
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
NewVars(): Pick up the new_member_options attribute.
|
| |
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
DATA_FILE_VERSION: Bump to pick up the new_member_options attribute.
|
| |
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
addNewMember(): Set the member's initial user_options to the list's
new_member_options value (if it's non-zero).
|
| |
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
InitVars(): Add the new_member_options attribute.
(Also, untabbification)
|
| |
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
NODUPES: Description of the nodupes option.
option_desc, option_info, options: Add nodupes.
|
| |
|
|
|
| |
X-Mailman-Approved-At: and remove the address of the approver (it's
always going to be some alias for the list's moderators or admins).
|
| |
|
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
FormatOptionButton(): Add DontReceiveDuplicates to the list of
options names.
(Also, untabbification)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN.
Specifically,
GLOBAL_PIPELINE: Add the AvoidDuplicates handler module.
DEFAULT_NEW_MEMBER_OPTIONS: The default value as a bitfield for the
new "new_member_options" attribute, which specifies the intial values
for various member-specific option flags.
DontReceiveDuplicates: Flag for control of the duplicate suppression
feature.
|
| |
|
|
|
| |
from the subscription confirmation form. The potential for mischief
seems high.
|
| |
|
|
|
|
|
|
| |
extraction of the process() method into the constructor. I don't
think it's too much of a burden to have to restart the OutgoingRunner
if you want to change the DELIVERY_MODULE (and I suspect it won't
change that much anyway). This also seems to help control memory
growth in the OutgoingRunner.
|
| |
|
|
|
|
|
| |
specializing the queue directory, make QDIR a class attribute and have
Runner's ctor use that instead of an __init__() argument. This lets
us get rid of most of the __init__()'s in the derived classes.
(OutgoingRunner still needs one though.)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
being able to free cycles containing MailList objects (see the gc
module's documentation under the gc.garbage attribute for details).
AFAICT, this has no effect on operations currently, because I believe
we are pretty rigorous about unlocking MailList objects explicitly.
This has a dramatic effect on memory leakage too, since there were/are
cycles containing these fairly heavyweight objects that previously,
the garbage collector couldn't free.
We'll need to watch carefully for stale locks being left around,
because I believe the MailList objects were at least being finalized
during process shutdown, but maybe not, and it's a very dubious
practice to be depending on anyway.
Note: this doesn't completely eliminate the unbounded memory growth,
although this in conjunction with shutting off the archiver appears to
improve the steady state of memory usage (and perhaps not
coincidentally greatly improves performance).
|
| |
|
|
|
|
|
| |
__dispatch table in the constructor, as this creates some circular
references that are unnecessary most of the time. Only when
ParseMailCommands() is run and the dispatch table is empty do we
create the table. This should only happen in the CommandRunner.
|
| | |
|
| |
|
|
| |
MailList object instead of instantiating one explicitly.
|
| | |
|
| | |
|
| |
|
|
|
| |
the admin message in other checkins; specifically, we use set_type()
to set the Content-Type:
|
| |
|
|
|
| |
up the admin message in __sendAdminBounceNotice(); specifically, we
use set_type() to set the Content-Type:
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
UserNotification constructor so that the admin gets the unsub request
notice in the proper language.
__refuse(): Be sure to create the Subject: header and other i18n text
in the language of the recipient of the rejection message.
|