[Mailman-Developers] Re: Future of pipermail?
Bill Bumgarner
bbum@codefab.com
Tue, 21 Nov 2000 23:23:45 -0500
Let me describe a bit about what I envisioned when going down the =
Mailman+WebDAV implementation path. Maybe it is reasonable, maybe not.
I agree with Chuq, Ken and Barry regarding various concerns with =
Mailman. That the integration of technologies as a part of the required =
baseline makes the tool *less* flexible and *less* easily accesible; =
that security is a major concern; and that the future of Mailman should =
be about refining/abstracting what we have, not glomming new bits onto =
it.
With that said, let me discuss some of the issues I faced and some of =
the thinking that resulted. This is in no particular order and is not a =
criticism of anyone's coding contributions! My code is *not*Not*NOT* =
perfect and it all should be reviewed, as well!!
- archival of messages is a lot more than just writing the bodies to a =
web server and then generating some kind of automatic TOC/index. MIME =
based email content is not only a reality, but it is often the default. =
Mailman needs to more gracefully handle mime-types; automatic filters =
would be one solution [very desirable for things like a pure discussion =
list] and automatic decoding/filing/handling of attachments is another =
solution [and very desirable for things like project discussion lists, =
etc].
- message rewriting is a really powerful concept and should be an =
abstract and first class part of the Mailman core processing pipeline. =
When I implemented the decode-and-file-to-WebDAV solution, the first =
challenge was to build a handler that sat in the delivery pipeline and =
did some basic decode-and-rewrite-based-on-mailing-list-configuration as =
the message passed through the pipe. Once decoded/rewritten, then =
filing/processing/filtering/etc can all be abstracted *away* from the =
actual decode/rewrite process.
- Python's built in MIME type handling code sucks. It is great if you =
want to *compose* MIME content, it sucks if you want to rip apart =
existing mime content and have any kind of random access. As such, I =
turned to mimecntl.py by <some very good developer's name I can't =
remember>. It was quite useful and enabled me to get the job done, but =
does not have the most obvious of APIs. Did it improve in 2.0? I =
don't think so, but have not looked closely.
- the current solution for creating an archive is lacking-- that doesn't =
mean it doesn't work. It works and it works very well, but it is *not* =
modular, does *not* follow the design patterns of the rest of the tool =
and makes it *very* difficult to slap in replacement models for archival =
(has this changed since, say, may? If it has, I'll have to retract this =
until I look again). Before WebDAV or anything else can be considered, =
the actual archival process needs to be abstracted away from the hack =
that is in there now.
- gatewaying messages to an HTTP server as they are processed is an =
extremely powerful addition [and very easy to do]. However, it is =
useful to *also* add the ability to automatically requeue messages for =
blastting at the HTTP server if the server returns certain error codes. =
This is done in the codebase I posted an ftp:// to earlier. This allows =
for *extremely* flexible integration of Mailman w/other infrastructure.
- WebDAV does *not* address security. Nor does it contribute to =
"security issues". Any web based archive of data is only as secure as =
the Web server that allows access to the content. Given that the Web is =
now the *standard* way of presenting things like Mailing list archives, =
this is a security issue mailman faces *regardless* of the use of WebDAV =
as the means of storing the archive. WebDAV is merely an extension to =
the existing HTTP protocol. However, WebDAV does allow for =
interesting potential security implementations; URLs that automatically =
time out after X minutes/hours/days are trivial to implement.
- for the archival of plain text messages, WebDAV is overkill [as Chuq =
mentions]. However, as soon as you move to archiving mime attachments, =
it quickly becomes extremely advantageous to archive various properties =
with the archived message pieces. Example; if my modified Mailman =
receives a message from a Macintosh with an attachment, it stores the =
Creator/Type information [and other extended headers] as a set of =
properties associated with the Resource on the attachment server. This =
allows for...
- ....restoring decoded attachments and reencoding back to their =
original state with their original headers is an extremely cool feature. =
With this [in the modified version of Mailman+WebDAV], it is quite =
easy to send a request to Mailman that causes it to reconstitute a =
single attachment in all of its original encoded glory with its original =
headers based entirely on the decoded information found on the WebDAV =
server. This message can then be automatically sent to the user and =
will be treated just like the original attachment in the original =
message.
- if we are to manage the complexity associated with the integration of =
numerous technologies, it is only going to happen through well refined =
and highly modular APIs....
b.bum