| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
more precautions to assert the command should be in 'us-ascii'
and more errors.
|
| |
|
|
|
|
|
|
|
|
|
| |
Closing [ 1003070 ] Decode original subject in post acknowledgement
by Soji IKEDA
Modified Files:
Tag: Release_2_1-maint
Mailman/Bouncer.py
Mailman/Handlers/Acknowledge.py
|
|
|
|
| |
Use unicode concatnation in header+message+footer
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modified Files:
Mailman/Handlers/Scrubber.py
Mailman/Defaults.py.in
Fixes some bugs:
charset problem where input/output charset are different
text file without charset makes trouble when merging into one text msg.
delete content-transfer encoding
use Utils.oneline() for i18n filename
use msg.walk() to collect parts
Introduce:
mm_cfg.SCRUBBER_DONT_USE_ATTACHMENT_FILENAME to prevent extremely long fn.
|
| |
|
|
|
|
|
| |
also a minor typo fix.
Thanks to Jim Tittsler - jtittsler.
|
|
|
|
|
| |
TK: Being a postfix user myself, this patch looks reasonable.
Thanks to James Henstridge (jhenstridge).
|
| |
|
|
|
|
| |
this looks easiest and my first commit to Mailman source tree. ;-) (TK)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
any more (they were error signals in the previous switchboard implementation),
so simplify the loop. We can't have 'lost data files'.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
adds a "discard all messages marked Defer" for quicker admindb maintenance.
Patch by Eddie Kohler, SF id xexd.
|
| |
|
| |
|
| |
|
|
|
|
| |
plast or file == dlast.
|
|
|
|
| |
files when the list lock is held.
|
|
|
|
| |
file.
|
|
|
|
|
| |
to a .corrupt file, since it could not be read. This should eliminate the
shutil EPERM exceptions.
|
|
|
|
| |
MMBadEmailError or MMHostileAddress will be caught.
|
| |
|
| |
|
| |
|
|
|
|
| |
before trying to call replace on them for the rejection notice substitution.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
queuing of bounce events out of the process's memory and into a 'bounce event'
file, essentially consisting of a stream of pickles. Every once in a while
the qrunner wakes up and processes the event file, which is named to be
specific to each qrunner instance. The actually processing is factored out
into a mixin class which is now subclassed by both the BounceRunner and
OutgoingRunner classes (since the latter has to handle SMTP rejects as
bounces).
Specific changes here include:
OutgoingRunner: Use BounceMixin as a base class. We can now get rid of the
whole _permfailures and _permfail_counter stuff since we'll just use the mixin
class as the basic logic for bounce handling.
_dispose(): Simplified since we can just use _queue_bounces() when a message
is rejected at SMTP time, although if that triggers a probe, the attached
message will be the one for which delivery was attempted since there really
isn't any bounce. Also, make this method handle probe bounces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
queuing of bounce events out of the process's memory and into a 'bounce event'
file, essentially consisting of a stream of pickles. Every once in a while
the qrunner wakes up and processes the event file, which is named to be
specific to each qrunner instance. The actually processing is factored out
into a mixin class which is now subclassed by both the BounceRunner and
OutgoingRunner classes (since the latter has to handle SMTP rejects as
bounces).
Specific changes include:
REGISTER_BOUNCES_EVERY: Promote to a Defaults.py.in variable.
BounceMixin: Mixin class for handling the basics of bounce event queuing,
periodic processing, and registering, as well as cleanup. It also contains a
_probe_bounce() method for handling bounces of the probe message (which cause
an immediate disable).
BounceRunner: Add BounceMixin as a base class.
|
|
|
|
|
| |
OutgoingRunner for easier handling of probe messages which are rejected at
SMTP time.
|
| |
|
| |
|
|
|
|
|
| |
escaping. 'info' sanitizes just <script> and </script> tags. This partially
closes bugs 870028 and 881369.
|
|
|
|
|
| |
This allows subclasses to override where necessary. The default implementaton
is to call Utils.websafe().
|
|
|
|
|
|
|
| |
to the end of the function trying to present the options page for a
non-existant user, causing a traceback. At the last second, do one more
isMember() check and return the loginpage if the address isn't a member of the
list.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now a pickle instead the less secure marshal. Other changes:
__filename(): Removed. We'll use the instance variable __filename instead.
__opendb(): Simplified by removing upgrade logic largely duplicated in
_UpdateRecords().
__closedb(): Use pickles and the __filename instance variable.
__request_id(): Removed this since it wasn't thread-safe. It didn't require
the acquisition of the list lock. Replaced with __nextid() which not only
asserts the list lock, but also ensures that the id returned will be unique.
HoldMessage(): Always flush and fsync the heldmsg file.
Various other code improvement.
|
|
|
|
|
|
|
|
|
|
|
| |
one-file-per-queued-message architecture. The message object and metadata
dictionary are now written to the same .pck file -- in that order -- instead
of to separate files which were more complicated to manage. dequeue()
especially simplifies considerably.
Also, get rid of the special _Switchboard hack, as well as the
MarshalSwitchboard, ASCIISwitchboard, and BSDDBSwitchboard implementations.
Also get rid of the DumperSwitchboard class.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
addrchange_confirm(), heldmsg_cancel(), heldmsg_confirm(), reenable_confirm():
Convert to the new pending database interface.
expunge(): A helper function which ensures that the list is locked before
expunging an item from the confirmation database.
|
|
|
|
| |
to indicate that we're now saving things in a per-list database.
|