aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Sapiro <mark@msapiro.net>2019-06-05 16:43:30 -0700
committerMark Sapiro <mark@msapiro.net>2019-06-05 16:43:30 -0700
commit56188e427f80ed350b6608ce47124402c90b9d40 (patch)
tree0385c78fb66a72ca7173180d278bf6463db29a6b
parent9c512c07b877fe8c218295c9515c32a2cb4c544a (diff)
downloadmailman2-56188e427f80ed350b6608ce47124402c90b9d40.tar.gz
mailman2-56188e427f80ed350b6608ce47124402c90b9d40.tar.xz
mailman2-56188e427f80ed350b6608ce47124402c90b9d40.zip
Added site list -bounces and -request @ virtual domain to virtual-mailman.
-rw-r--r--Mailman/MTA/Postfix.py30
-rw-r--r--NEWS4
2 files changed, 30 insertions, 4 deletions
diff --git a/Mailman/MTA/Postfix.py b/Mailman/MTA/Postfix.py
index 798957a5..e15e798f 100644
--- a/Mailman/MTA/Postfix.py
+++ b/Mailman/MTA/Postfix.py
@@ -159,13 +159,19 @@ def _addvirtual(mlist, fp):
# And the site list posting address.
siteaddr = Utils.get_site_email(mlist.host_name)
sitedest = Utils.ParseEmail(siteaddr)[0]
- # And the site list -owner address.
+ # And the site list -owner, -bounces and -request addresses.
siteowneraddr = Utils.get_site_email(mlist.host_name, extra='owner')
siteownerdest = Utils.ParseEmail(siteowneraddr)[0]
+ sitebouncesaddr = Utils.get_site_email(mlist.host_name, extra='bounces')
+ sitebouncesdest = Utils.ParseEmail(sitebouncesaddr)[0]
+ siterequestaddr = Utils.get_site_email(mlist.host_name, extra='request')
+ siterequestdest = Utils.ParseEmail(siterequestaddr)[0]
if mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN:
loopdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
sitedest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
siteownerdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
+ sitebouncesdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
+ siterequestdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
# If the site list's host_name is a virtual domain, adding the list and
# owner addresses to the SITE ADDRESSES will duplicate the entries in the
# stanza for the list. Postfix doesn't like dups so we try to comment them
@@ -174,6 +180,8 @@ def _addvirtual(mlist, fp):
hostname.lower()):
siteaddr = '#' + siteaddr
siteowneraddr = '#' + siteowneraddr
+ sitebouncesaddr = '#' + sitebouncesaddr
+ siterequestaddr = '#' + siterequestaddr
# Seek to the end of the text file, but if it's empty write the standard
# disclaimer, and the loop catch address and site address.
fp.seek(0, 2)
@@ -192,14 +200,18 @@ def _addvirtual(mlist, fp):
# LOOP ADDRESSES END
# We also add the site list address in each virtual domain as that address
-# is exposed on admin and listinfo overviews, and we add the site list-owner
-# address as it is exposed in the list created email notice.
+# is exposed on admin and listinfo overviews, and we add the site list-owner,
+# -bounces and -request addresses as they are exposed in the list created
+# and/or password reminder email notices.
# SITE ADDRESSES START
%s\t%s
%s\t%s
+%s\t%s
+%s\t%s
# SITE ADDRESSES END
-""" % (loopaddr, loopdest, siteaddr, sitedest, siteowneraddr, siteownerdest)
+""" % (loopaddr, loopdest, siteaddr, sitedest, siteowneraddr, siteownerdest,
+ sitebouncesaddr, sitebouncesdest, siterequestaddr, siterequestdest)
# The text file entries get a little extra info
print >> fp, '# STANZA START:', listname
print >> fp, '# CREATED:', time.ctime(time.time())
@@ -226,10 +238,16 @@ def _check_for_virtual_loopaddr(mlist, filename):
sitedest = Utils.ParseEmail(siteaddr)[0]
siteowneraddr = Utils.get_site_email(mlist.host_name, extra='owner')
siteownerdest = Utils.ParseEmail(siteowneraddr)[0]
+ sitebouncesaddr = Utils.get_site_email(mlist.host_name, extra='bounces')
+ sitebouncesdest = Utils.ParseEmail(sitebouncesaddr)[0]
+ siterequestaddr = Utils.get_site_email(mlist.host_name, extra='request')
+ siterequestdest = Utils.ParseEmail(siterequestaddr)[0]
if mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN:
loopdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
sitedest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
siteownerdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
+ sitebouncesdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
+ siterequestdest += '@' + mm_cfg.VIRTUAL_MAILMAN_LOCAL_DOMAIN
# If the site list's host_name is a virtual domain, adding the list and
# owner addresses to the SITE ADDRESSES will duplicate the entries in the
# stanza for the list. Postfix doesn't like dups so we try to comment them
@@ -238,6 +256,8 @@ def _check_for_virtual_loopaddr(mlist, filename):
mlist.host_name.lower()):
siteaddr = '#' + siteaddr
siteowneraddr = '#' + siteowneraddr
+ sitebouncesaddr = '#' + sitebouncesaddr
+ siterequestaddr = '#' + siterequestaddr
infp = open(filename)
omask = os.umask(007)
try:
@@ -288,6 +308,8 @@ def _check_for_virtual_loopaddr(mlist, filename):
# It hasn't
print >> outfp, '%s\t%s' % (siteaddr, sitedest)
print >> outfp, '%s\t%s' % (siteowneraddr, siteownerdest)
+ print >> outfp, '%s\t%s' % (sitebouncesaddr, sitebouncesdest)
+ print >> outfp, '%s\t%s' % (siterequestaddr, siterequestdest)
outfp.write(line)
break
elif line.startswith(siteaddr) or line.startswith('#' + siteaddr):
diff --git a/NEWS b/NEWS
index 626851a1..2f4ed388 100644
--- a/NEWS
+++ b/NEWS
@@ -47,6 +47,10 @@ Here is a history of user visible changes to Mailman.
characters in a list's description could produce a List-ID header
without angle brackets. (LP: #1831321)
+ - With the Postfix MTA and virtual domains, mappings for the site list
+ -bounces and -request addresses in each virtual domain are now added
+ to data/virtual-mailman (-owner was done in 2.1.24). (LP: #1831777)
+
2.1.29 (24-Jul-2018)
Bug Fixes