| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
| |
mailing lists.
|
| |
|
|
|
| |
too magical so eventually explicit imports will be added to the
appropriate modules.
|
| | |
|
| |
|
|
| |
Modifications to use extended print syntax.
|
| | |
|
| |
|
|
|
| |
the try block. Should have no practical effect, but makes debugging
easier.
|
| |
|
|
| |
Closes David Champion's patch #101331.
|
| |
|
|
|
| |
messages posted to the list (as opposed to message sent to the -admin,
-owner, -request addresses, or internally generated).
|
| |
|
|
|
| |
headers. These caused problems with the back button and didn't really
solve an existing problem.
|
| |
|
|
|
|
| |
flag. If it came from the -admin address, set toadmin. The test is
against the To: field and checks for string equality with
mlist.GetOwnerEmail().
|
| |
|
|
| |
no-cache" and "Expires: 0" to inhibit caching.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
messages to the qfiles directory. This once and for all avoids the
possibility that we hit the MTA's command time limit. The mailing
list objects are never locked so we can't time out there. They don't
need to be locked for message queuing.
The penalty is that we do more disk i/o for every message destined to
the list, the list-owner or list-request, and messages are not
delivered immediately. Both are probably worthy tradeoffs for
absolutely guaranteeing that messages never get lost.
|
| |
|
|
|
| |
traceback, system, and environment information to the web pages. The
information is always still printed to the log files.
|
| |
|
|
|
| |
DeliverToList() will now do this automatically if any pipeline module
fails.
|
| | |
|
| |
|
|
|
|
|
| |
fails -- the list name is missing or bogus, or the list lock cannot be
acquired within the LIST_LOCK_TIMEOUT time frame -- the message is
enqueued for qrunner to try again later. Previously, the message was
simply lost!
|
| |
|
|
|
|
|
|
|
| |
name is missing or bogus, or the list lock cannot be acquired within
the LIST_LOCK_TIMEOUT time frame -- the message is enqueued for
qrunner to try again later. Previously, the message was simply lost!
If DeliverToUser() returns a true value, then this means the message
delivery was not completed, and again, the message is enqueued.
|
| |
|
|
|
|
|
|
|
| |
name is missing or bogus, or the list lock cannot be acquired within
the LIST_LOCK_TIMEOUT time frame -- the message is enqueued for
qrunner to try again later. Previously, the message was simply lost!
If DeliverToList() returns a true value, then this means the message
delivery was not completed, and again, the message is enqueued.
|
| |
|
|
|
|
|
|
| |
operating environment, namely some key sys module attributes (version,
prefix, etc.). We're going to need a way to scale back this reporting
for the Web pages in case folks do not want to reveal this much
information. And hey, since 2.0 will have no bugs, this stuff is all
moot anyway, right? :)
|
| |
|
|
|
|
|
|
| |
the logger object so they can simply sys.stderr.write() to get error
messages out to logs/error.
No need to set sys.__stderr__ and sys.__stdout__; we're requiring at
least Python 1.5.2 now.
|
| | |
|
| | |
|
| |
|
|
| |
is going to be required now.
|
| | |
|
| |
|
|
|
|
| |
of recipients). More importantly, flag the message as having been
delivered to the -admin address by setting the `toadmin' attribute on
the message. This is used by the Replybot handler.
|
| |
|
|
| |
"post ending" message (better debugging).
|
| |
|
|
| |
taking longer than 16 minutes to complete.
|
| |
|
|
|
| |
when the alias is misconfigured. This will just naturally happen in
the error logs.
|
| |
|
|
| |
Message.Message requires this.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
HandlerAPI.DeliverToUser() for fast track delivery of the
welcome messages.
Stick most code in main()
Use LogStdErr
Remove the fromusenet cruft -- since Usenet messages are gated to the
newsgroup without going through the post script now, this is all
unnecessary.
Move the sending of postheld.txt to the Hold.py pipeline module, where
it really belongs. Plus it won't work here because those exceptions
aren't percolated up to the post script. MMLoopingPost exceptions
still make it through and are handled here (although I suspect this
should go into one of the handlers too).
|
| |
|
|
|
|
|
|
|
| |
HandlerAPI.DeliverToUser() for fast track delivery of the
welcome messages.
Stick everything in a main().
Simplify error reporting by using Mailman.Logging.Utils.LogStdErr
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
MailList.Post(), specifically:
Message object ctor takes a file-like object, so use StringIO when the
data is coming from a string.
MailList.Post() no longer takes an approved argument. Setting the
`fromusenet' attribute on the message object is enough to let the
system know where the message is from.
|
| | |
|
| | |
|
| |
|
|
| |
comment clarification
|
| |
|
|
|
|
|
|
|
|
| |
the mailing list that have a matching X-BeenThere header). Instead of
holding such messages for approval, an MMLoopingPost error is raised.
This is caught by the post CGI script, which logs this occurance and
sends a notice (containing the original message) to the list admin.
This way, the admin knows there's a problem and can track the loop
down, but isn't so inconvenienced to go the the Web page just to
discard the message (the usual disposition).
|
| |
|
|
|
|
|
| |
Stick a `fromusenet' attribute on the msg object, value taken from
whether there is a magical second argument to the post script (only
happens from GatewayManager). Also post message with approved flag
set to fromusenet, so message originating on Usenet are pre-approved.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
propagate version string changes to the public (you have to
autoreconf, then reconfigure and reinstall).
Now, VERSION is set directory in Defaults.py.in and the Release.py
script updates that file directly. Now we just need to run
./config.status and do a re-install. I hope this will make things
easier.
I'm also bumping the version to 1.0b8, so I can do a release tomorrow.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
content-type header, or include a bogus one.
cgi.py
FieldStorage.__init__(): if there is no content-type header, use
text/plain for inner parts, but application/x-www-form-urlencoded
for outer parts. Honor any existing content-type header.
Lower down, if the content-type header is something we don't
understand, default to text/plain for inner parts, but
application/x-www-form-urlencoded for outer parts.
This patch will be proposed for Python 1.5.2
driver
run_main(): Play some games to get Mailman's special cgi.py
module. We import it from Mailman.pythonlib.cgi, but then we jam
this module into sys.modules['cgi'] so all those imports in all
those Mailman.Cgi scripts get our special one (without having to
hack all those scripts!)
|
| |
|
|
| |
into both the error log and the HTML page.
|
| |
|
|
|
|
| |
definition -- the only place it's used. Also, comment out the whole
def and __builtin__ hack. This debugging stuff probably shouldn't go
into the release (although its use should be documented).
|
| |
|
|
| |
exercised - doesn't work. 'from Mailman import mm_cfg'.
|
| |
|
|
| |
portably re-raise the exception.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
a message to the -admin address to the owners untouched and with the
sender of the original message
Added a GetEnvelopeSender method to Message.py that attempts to find the
envelope sender from a messages's unix from line for use by DeliverToOwner
changed the mailowner script to use DeliverToOwner method instead of
the DeliverToList method
scott
|
| |
|
|
| |
templates/postheld.txt
|