| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
main(): Convert to the new Switchboard mechanisms. This means we
neither need to instantiate the mailing list, nor create a Message
object from stdin. A side effect of this change is that we can't
efficiently determine whether this message was destined for the -owner
or -admin address (since this script bogusly handles both). We defer
this decision to the CommandRunner.
|
| | |
|
| |
|
|
|
|
|
| |
main(): Change the error messages; removed old cruft (we never need to
create the MailList object, we just need a valid listname -- we also
don't ever need to create a Message object, stdin is fine); change the
enqueuing code to use the new Switchboard mechanism.
|
| | |
|
| | |
|
| |
|
|
| |
described in qrunner for details).
|
| |
|
|
|
|
| |
the non-extension address, and for handling listnames with dashes in
them. Also, do better matching of incoming message's target domain
with the list's domain.
|
| | |
|
| | |
|
| |
|
|
| |
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.
|