| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
| |
needed to get back to http://xxxx/mailman/ based on the PATH_INFO
environment variable.
|
| |
|
|
| |
being wrapped was the same as the column parameter.
|
| |
|
|
|
|
| |
Note that it does have one problem... If you have cookies off, you
have to log in every time, plus your changes don't take effect!
That definitely needs to be fixed.
|
| |
|
|
|
| |
Note that I'm using my smtplib right now, and not the one that comes
w/ Python 1.5. That should probably be changed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wrap(): New function which implements the wrapping and filling
algorithm, as described in the function's docstring. After talking it
over with Guido and Ken, this seemed like the best compromise for
ensuring that emailed messages to users look okay, when their MUAs
don't auto-wrap.
SendTextToUser(): Added optional argument raw which defaults to zero
(meaning by default, wrap and fill as per the rules in wrap()). When
raw=1, no wrapping or filling of the text argument is performed.
While Ken thinks that wrapping/filling should be turned off by
default, I think there are many more cases where the text should be
wrapped and filled than not, so this go'round tries to minimize code
changes. If the consensus is to invert the default value, we can make
that change after grep'ing the code.
|
| | |
|
| |
|
|
|
|
|
| |
do so.
Added a copy of the GNU GPL.
Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
|
| |
|
|
| |
is doing the right thing right off the bat.
|
| |
|
|
| |
another.
|
| |
|
|
|
|
| |
domain among those iterated among valid_toplevels. Depending on
ensuing discussion on the mailman-developers list, i'll probably cut
this out completely.
|
| | |
|
| |
|
|
|
| |
lacking. Otherwise, multiple ones will glom (were gloming) together
on a single line.
|
| |
|
|
|
|
|
|
|
|
|
| |
quotes - eg, gordon_o'hara@vanguard.com - was losing the quote when
passed on the command line to sendmail. Fixed by doing a repr() of th
recipient, so eg gordon_o\'hara@vanguard.com was being passed - and
accepted properly by sendmail.
Now i think i have to do the same thing with scripts/deliver, sigh -
it'd be good to get the direct SMTP based mechanism in, but i didn't
have time to work it through, uncover the ramifications...
|
| |
|
|
| |
__version__ info.
|
| |
|
|
|
| |
headers to a add_headers optional arg - a list for headers like
Errors-To and X-No-Archive.
|
| |
|
|
|
| |
StampedLogger for debugging output can choose to initialize it so that
failure is detectable, and thus can be handled in the program.
|
| |
|
|
|
|
|
|
|
|
| |
when one of the addresses has no domain.
StampedLogger(): New option manual_reprime makes better for use as
sys.stderr substitute - says to put the timestamp only on first write
or writes just succeeding a .reprime() call - so the timestamp divides
separate multi-line entries. And in any case, write the
timestamp/label prefix on when at the beginning of a new line.
|
| |
|
|
|
|
|
|
|
|
|
| |
default), timestamps will only be included at beginning of new entries
after the first entry and after entries that are preceeded by a call
to the .reprime() method.
This is handy for when StampedLogger is used as a substitute for
sys.stderr, where you would like to see groups of entries collected
together in a single timestamp (and you often only have a single
group, for uncaught exceptions where the script is failing...)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the domain side of the at sign of one address properly contains
the domain in the other example.
Wrap DeliverToUser body in a os.fork, to prevent a deadlock which can
happen when, eg, a message bounces before message aceptance in
sendmail. Message bouncing early on in message acceptance by sendmail
means reporting to list admin address, which is itself actually a
mailman program, which uses the instantiated list as a agent, and
which requires the same lock that the invoking process is holding -
ie, deadlock
Sendmail's deliver-in-background option would be great for this, except
that the error processing for immediately recognized delivery problems
turns out to be handled in the foreground, regardless of the bg
delivery option.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
functionalities here.
Logger() and StampedLogger() routines provide file-like file logging
mechanisms. (I reimplmented the list .LogMsg() method based on this
routine.) This is implemented outside the list infrastructure so it
can be used for, eg, stderr substitution.
SendTextToUser() and DeliverToUser() implemented here likewise, so
they can be used outside list context (eg, when lists are broken...).
Made AddressesMatch not raise error when one of the address arguments
yields a null domain.
Moved comment about .FindMatchingAddresses() to be the function
docstring.
|
| |
|
|
|
|
|
|
| |
sessions with lists, applies user specified routine to all of the
lists, or optionally, those lists with user-specified names. Optional
arg unlock says to unlocked immediately after instantiation, for
non-invasive actions. Optional arg verbose says to print list name
and result incrementally as they're handled.
|
| |
|
|
|
|
|
| |
maillist.py.
Moved abstract description part of comment before ValidEmail in as a
docstring. (We need more and decent docstrings in this code!!)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
transforming email addresses so they're not apparent to web spiders,
therefore not scrapable by spammers.
The UnobscureEmail transformation should work like an identity
function on already-unobscured addresses, so it can be used with
impunity.
The routines should be used as functional interface to address
obscuring, so the scheme can be changed transparently to the rest of
the system, just by changing the routines. This should make it easy
to up the ante in the thwarting of spammers, if this catches on.
|
| |
|
|
| |
744) so group can get in created directories.
|
| |
|
|
|
|
|
|
| |
development have access, also. More importantly, zero the umask
before actually creating the dir (and restore it afterwards), so the
permissions are exactly as specified,
Also wrapped a long line.
|
| | |
|
| |
|