OK, as I said I'm a bit clueless about mailman, particularly with qmail. I was just reading about that script wondering whether or not to use it, so I guess the answer is yes. And it is included with the Debian package. Thanks.
Ken
On Wed, 2005-09-28 at 20:44 +0200, Cees De Groot wrote:
root@lnx-12:/var/spool/vpopmail/domains/lists.squeakfoundation.org# cat .qmail-default |preline /usr/bin/python /home/mailman/bin/qmail-to-mailman.py
So we haven't used individual alias files, just one script - dunnow whether it is standard mailman issue, so I reproduce it here:
#! /usr/bin/env python
# Configuration variables - Change these for your site if necessary. MailmanHome = "/home/mailman"; # Mailman home directory. MailmanOwner = "postmaster@localhost"; # Postmaster and abuse mail recepient. # End of configuration variables.
# qmail-to-mailman.py # # Interface mailman to a qmail virtual domain. Does not require the creation # of _any_ aliases to connect lists to your mail system. # # Bruce Perens, bruce@perens.com, March 1999. # This is free software under the GNU General Public License. # # This script is meant to be called from ~mailman/.qmail-default . It catches # all mail to a virtual domain, in my case "lists.hams.com". It looks at the # recepient for each mail message and decides if the mail is addressed to a # valid list or not, and bounces the message with a helpful suggestion if it's # not addressed to a list. It decides if it is a posting, a list command, or # mail to the list administrator, by checking for the -admin, -owner, and # -request addresses. It will recognize a list as soon as the list is created, # there is no need to add _any_ aliases for any list. It recognizes mail to # postmaster, mailman-owner, abuse, mailer-daemon, root, and owner, and # routes those mails to MailmanOwner as defined in the configuration # variables, above. # # INSTALLATION: # # Install this file as ~mailman/qmail-to-mailman.py # # To configure a virtual domain to connect to mailman, create these files: # # ~mailman/.qmail-default # |preline /usr/bin/python /home/mailman/mail-in.py # # /var/qmail/control/virtualdomains: # DOMAIN.COM:mailman # # Note: "preline" is a QMail program which ensures a Unix "From " header is # on the message. Archiving will break without this. # # Replace DOMAIN.COM above with the name of the domain to be connected to # Mailman. Note that _all_ mail to that domain will go to Mailman, so you # don't want to put the name of your main domain here. In my case, I created # lists.hams.com for Mailman, and I use hams.com as my regular domain. # # After you edit /var/qmail/control/virtualdomains, kill and restart qmail. #
import sys, os, re, string
DBG = open("/tmp/debug.log", "w")
def main(): DBG.write("click 1\n"); DBG.flush() os.nice(5) # Handle mailing lists at non-interactive priority.
DBG.write("click 1\n"); DBG.flush() os.chdir(MailmanHome + "/lists") DBG.write("click 1\n"); DBG.flush() try: local = os.environ["LOCAL"] except: # This might happen if we're not using qmail. sys.stderr.write("LOCAL not set in environment?\n") sys.exit(100) DBG.write("pre local: %s\n" % local); DBG.flush() local = string.lower(local) local = re.sub("^mailman-","",local) DBG.write("post local: %s\n" % local); DBG.flush() names = ("root", "postmaster", "mailer-daemon", "mailman-owner", "owner", "abuse", "mailman") for i in names: if i == local: os.execv("/var/qmail/bin/qmail-inject", ("/var/qmail/bin/qmail-inject", MailmanOwner)) sys.exit(0) type = "post" types = (("-admin$", "admin"), ("-bounces$", "bounces"), ("-confirm$", "confirm"), ("-join$", "join"), ("-leave$", "leave"), ("-owner$", "owner"), ("-request$", "request"), ("-subscribe$", "subscribe"), ("-unsubscribe$", "unsubscribe")) for i in types: if re.search(i[0],local): type = i[1] local = re.sub(i[0],"",local) DBG.write('type: %s\n' % type); DBG.flush() if os.path.exists(local): os.execv(MailmanHome + "/mail/mailman", (MailmanHome + "/mail/mailman", type, local)) else: bounce() DBG.write('oops\n'); DBG.flush() sys.exit(111)
def bounce(): bounce_message = """\ TO ACCESS THE MAILING LIST SYSTEM: Start your web browser on http://%s/ That web page will help you subscribe or unsubscribe, and will give you directions on how to post to each mailing list.\n""" sys.stderr.write(bounce_message % (os.environ["HOST"])) sys.stderr.write("local = %s\n" % os.environ["LOCAL"]) sys.exit(100)
try: sys.exit(main()) except SystemExit, argument: sys.exit(argument)
except Exception, argument: info = sys.exc_info() trace = info[2] sys.stderr.write("%s %s\n" % (sys.exc_type, argument)) sys.stderr.write("Line %d\n" % (trace.tb_lineno)) sys.exit(111) # Soft failure, try again later.
On 9/28/05, Ken Causey ken@kencausey.com wrote:
I'm looking into it, but having had no prior experience with setting up mailman (and having other work I have to do) I make no promises as to how quickly I can finish this or if I even can. I welcome assistance from anyone with mailman assistance, particularly in a qmail environment.
Cees: Is there anyway we can get the current alias setup for the lists? Or are we going to have to recreate that by hand?
Ken
On Wed, 2005-09-28 at 17:03 +0200, Cees De Groot wrote:
Hi All,
All data from the old mailman setup is on box2:/mm
I'm going to tune the TTL down for lists.squeakfoundation.org so we can quickly transfer.
Who can finish the mailman configuration? I'm off in a minute, have to visit my sister, won't be back before late tonight and then I need to concentrate on getting this old machine emptied from its services before it crashes&burns...
-- Help my girlfriend's family after Katrina - http://swiki.cdegroot.com/katrina
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQBDOuKm//qOUj3eKgMRArH0AJ4nbKw3He+cROO0mwqh5ekf9atpkQCfU2F/ BT7gRZtYEasZ/3aaUgaLijY= =urzs -----END PGP SIGNATURE-----
-- Help my girlfriend's family after Katrina - http://swiki.cdegroot.com/katrina