| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
we can unshunt it to the correct queue.
|
| |
|
|
|
|
|
| |
`undelivered' key in the message metadata to the list of chunks the
message will be sent to. If something breaks during delivery of this
message, the list of undelivered recipients will be saved with the
metadata, and should be restored when the message is unshunted.
|
| |
|
|
|
| |
for the list owner, unset the charset parameter on the multipart/mixed
Content-Type: header.
|
| |
|
|
| |
"can't digest". Noticed by Marc MERLIN.
|
| |
|
|
|
|
|
|
|
|
|
| |
user_options, skip the key if its not a member. This can happen when
upgrading legacy databases because I believe there were bugs long ago
that caused some keys to appear in user_options but not in members or
digest_members.
Also, we now have a mini-version id for the user_options stuff so
CanonicalizeUserOptions() won't try to run every time some other part
of the schema changes.
|
| |
|
|
| |
syslog error message.
|
| |
|
|
| |
Previously we were forgetting about VERP_PERSONALIZED_DELIVERIES.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
message until SMTP delivery time. This makes VERPish delivery much
more efficient. One casualty is that threaded delivery (which was
always marked as experimental) is now gone. It might be resurrected
as a separate delivery module -- possibly called SMTPThreaded.py -- if
there is enough pressure.
Specific changes:
Connection: New class which abstracts away the handling of disconnect
and re-establishment of a connection to the SMTP server in response to
the new SMTP_MAX_SESSIONS_PER_CONNECTION setting.
process(): Streamline this function now that threaded delivery is
gone, but add in the calculation of two types of single-threaded
delivery: verpdeliver() for any VERP or personalized delivery, and
bulkdeliver() for delivery of an identical copy to a set of
recipients. Note that verpdeliver() calls bulkdeliver() after setting
up the per-recipient specializations.
pre_deliver(), threaded_deliver(): Gone; a victim of threaded delivery
removal.
verpdeliver(): New function which takes a list of recipients and
crafts an in-memory copy of the message to be specialized and
delivered to exactly one recipient.
bulkdeliver(): Deliver an identical copy to a list of recipients.
That list may be of length 1 <wink>.
|
| |
|
|
| |
as its functionality has been subsumed by SMTPDirect.py
|
| |
|
|
|
|
| |
decorating a message with its headers and footers. The only change is
that the msgdata key is now a directive instead of state
(i.e. `personalized' -> `personalize').
|
| |
|
|
| |
longer munge the Sender: or Errors-To: headers in this module.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- We need to make VERPish delivery much more efficient from a disk
utilization pov. To that end, we no longer create a new copy on the
disk of every message for every recipient. Instead we'll stitch the
message together in memory as we're stuffing it down the SMTP
socket.
GLOBAL_PIPELINE: Don't call Decorate from the pipeline since we'll
need to defer this as late as possible. SMTPDirect.py will call it
now in the proper context (Decorate.py still does largely the same
job as before though).
Also, don't call Personalize. This module will go away as its
functionality has been subsumed into SMTPDirect.py
- Second change: Some MTAs have a limit on the number of SMTP sessions
they'll allow on a single connection.
SMTP_MAX_SESSIONS_PER_CONNECTION is the new variable that controls
how many sessions Mailman will stuff down the socket before it tears
it down and re-connects.
|
| |
|
|
| |
probably needs porting to MM2.1.
|
| |
|
|
|
|
| |
- New Finnish translator
- Fixed urls in the FAQ
- Updates to TODO
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the membership test to check additional headers. I've modified
Jason's patch in the following ways:
- get_author() -> get_senders() even though I suggested the former. ;)
I'd like to eventually deprecate get_sender() so this will be its
eventual replacement.
- Some implementation details.
do_discard(): Changed the message that gets sent with auto-discarded
messages. It might have been discarded because of the default
non-member action, in which case the old message wasn't really
accurate. I don't think the reason for discarding is all that
important right now.
Translators: beware!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
loosens the membership test to check additional headers. I've
modified Jason's patch in the following ways:
- get_author() -> get_senders() even though I suggested the former. ;)
I'd like to eventually deprecate get_sender() so this will be its
eventual replacement.
- added an optional `headers' argument which defaults to None, meaning
the list of headers we agreed on previously. This allows you to
pass in the exact headers you want to consult (and their order).
- Some implementation details.
|
| |
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
These mean usage errors.
|
| | |
|
| |
|
|
| |
Thanks Marc.
|
| |
|
|
|
| |
remove a particular set of addresses from every mailing list at the
site.
|
| |
|
|
|
| |
ignore members that may have been deleted via other means during page
hits.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
main(): Forgot to check the value of the nomail flag when filtering
out disableds.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
try to move files into it.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|