[Mailman-Users] scripts/owners not setting list domain

Peter Radcliffe pir at pir.net
Wed Nov 15 02:46:14 CET 2006


I recently upgraded from mailman 2.0.x to 2.1.x finally (yeah, I've
been kinda busy moving countries again) and was bitten by what seems to
me to be a change in behaviour.

Mail sent to <listname>-owner was appearing with an SMTP envelope
sender of <listname>-bounces@<DEFAULT_URL_HOST> which isn't a valid
domain for mailman mail since it's different from DEFAULT_EMAIL_HOST
so the mail was bouncing.

I confirmed this by temp changing DEFAULT_EMAIL_HOST to something
else, ran fix_url and restarted the qrunners and it followed the
config. All other mail was currectly using
<listname>-bounces@<DEFAULT_EMAIL_HOST>.

I checked I had gotten rid of all the old variables, had run
add_virtualhost() properly in mm_cfg.py, ran fix_url, restarted the
qrunners, etc, everything I could find about it until I ran
across;
  http://mail.python.org/pipermail/mailman-users/2006-April/050706.html

It seems, as that person says, that scripts/owner calls
Utils.get_site_email() with no hostname which goes through
get_domain() to get where it's looking for... which pulls the hostname
out of mm_cfg.DEFAULT_URL_HOST.

Now, to my mind, using a URL host for email is never the right answer
unless no DEFAULT_EMAIL_HOST has been configured.

My mm_cfg.py section is thus;
------------------------------------------------------------------
DEFAULT_EMAIL_HOST = 'list.pir.net'
DEFAULT_URL_HOST = 'www.pir.net'
VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
------------------------------------------------------------------

I can't see a way to configure that to get what I think is the right
answer from 
  hostname = mm_cfg.VIRTUAL_HOSTS.get(get_domain(), get_domain())
but perhaps I'm missing something.

My answer was the following patch to scripts/owner. Since there is a
known list name at that point why not get the domain to use from it's
config?

Am I missing something?

Ta,
P.

------------------------------------------------------------------
*** owner.orig	Wed Nov 15 01:21:13 2006
--- owner	Wed Nov 15 01:20:24 2006
***************
*** 30,35 ****
--- 30,36 ----
  import paths
  from Mailman import mm_cfg
  from Mailman import Utils
+ from Mailman.MailList import MailList
  from Mailman.i18n import _
  from Mailman.Queue.sbcache import get_switchboard
  from Mailman.Logging.Utils import LogStdErr
***************
*** 49,54 ****
--- 50,56 ----
          print >> sys.stderr, _(
              'mailowner script, list not found: %(listname)s')
          sys.exit(1)
+     mlist = MailList(listname, lock=0)
      # Queue the message for the owners.  We will send them through the
      # incoming queue because we need some processing done on the message.  The
      # processing is minimal though, so craft our own pipeline, expressly for
***************
*** 57,63 ****
      inq.enqueue(sys.stdin.read(),
                  listname=listname,
                  _plaintext=1,
!                 envsender=Utils.get_site_email(extra='bounces'),
                  pipeline=mm_cfg.OWNER_PIPELINE,
                  toowner=1)
  
--- 59,66 ----
      inq.enqueue(sys.stdin.read(),
                  listname=listname,
                  _plaintext=1,
!                 envsender=Utils.get_site_email(hostname=mlist.host_name,
!                                                extra='bounces'),
                  pipeline=mm_cfg.OWNER_PIPELINE,
                  toowner=1)
  
------------------------------------------------------------------


-- 
pir




More information about the Mailman-Users mailing list