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