Sync complete

Ken Causey ken at kencausey.com
Wed Sep 28 18:51:11 UTC 2005


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 at 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 at 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 at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.squeakfoundation.org/pipermail/box-admins/attachments/20050928/8564e636/attachment.pgp


More information about the Box-admins mailing list