When setting up my qmail installation I was profoundly unhappy with the
various qmail/majordomo systems. So instead I wrote a script of my own
which handles delivery of messages from majordomo to qmail-inject, all the
while turning on VERP's and doing so in what I believe is a secure and
efficient manner. I've been using this for some pretty busy and pretty big
lists for the last month, so I feel it's reasonably stable. You can find
this at
http://hyperreal.org/~brian/mj-inject.pl
It's not a stellar piece of coding magic or anything at all, I just thought
it might help some others out there. Feel free to link to it, comment on
it, bundle it with other packages, etc. I do want to know about any bugs,
particularly security holes; since it's passing email addresses to the
shell call to qmail-inject (and things like '&' are legal in email
addresses) I try and escape all dangerous characters. I wish it didn't
have to do that, and no, I don't wish to code to an instable specification
for qmail-queue.
Other than this script, no modifications to majordomo or to qmail are
necessary to integrate the two. One's standard aliases in ~alias for a
list names "mlist" might look something like:
.qmail-mlist: |/usr/local/majordomo/wrapper resend -l list list-owner
.qmail-mlist-owner: george
.qmail-mlist-owner-default: mlist-owner
.qmail-mlist-approval: mlist-owner
.qmail-mlist-request: |/usr/local/majordomo/wrapper majordomo -l mlist
and that's all you need.
For future work: it'd be interesting, for majordomo2 perhaps, to take
advantage of the -default functionality in qmail and have a script which
can manage all aliases for a given list with two aliases. I.e.
.qmail-mlist: |/usr/local/majordomo/wrapper resend -l list list-owner
.qmail-mlist-default: |/usr/local/majordomo/wrapper qmail-handle list
That second alias would handle all the other aliases, and could also handle
digests too, if your name for the digest list is standardized as
list-digest. That way adding digest functionality is as easy as editing a
majordomo list config file (or could be), rather than maintain a whole
separate slew of aliases and a config file just for the digest.
Brian
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
"it's a big world, with lots of records to play."-sig brian@hyperreal.org
Follow-Ups:
|
|