summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbwarsaw1999-11-24 19:39:55 +0000
committerbwarsaw1999-11-24 19:39:55 +0000
commit81b7204b66c11afc8d2ec844e8f0cd758cfbb9bd (patch)
tree0217abe7e051a2f1e3416fa81fc04bcf9499a2c0
parent94ac9f8ed9bb490b4e86a8562dbf98ff61067c9c (diff)
downloadmailman-81b7204b66c11afc8d2ec844e8f0cd758cfbb9bd.tar.gz
mailman-81b7204b66c11afc8d2ec844e8f0cd758cfbb9bd.tar.zst
mailman-81b7204b66c11afc8d2ec844e8f0cd758cfbb9bd.zip
Convert message delivery to pipeline architecture by using
HandlerAPI.DeliverToUser() for fast track delivery of the welcome messages. We also no longer need to call Utils.Reap() since that's gone now.
-rwxr-xr-xbin/add_members55
1 files changed, 27 insertions, 28 deletions
diff --git a/bin/add_members b/bin/add_members
index c7d128c7f..97990c6de 100755
--- a/bin/add_members
+++ b/bin/add_members
@@ -68,11 +68,12 @@ import os
import string
import getopt
import paths
-import Mailman.MailList
-import Mailman.Utils
-import Mailman.Message
-import Mailman.Errors
-import Mailman.mm_cfg
+
+from Mailman import MailList
+from Mailman import Utils
+from Mailman import Message
+from Mailman import Errors
+from Mailman import mm_cfg
def usage(status, msg=''):
@@ -93,21 +94,23 @@ def ReadFile(filename):
return lines
-def SendExplanation(ml, users):
- msg = Mailman.Message.OutgoingMessage()
- msg['From'] = ml.GetAdminEmail())
- dict = {'listname' : ml.real_name,
- 'listhost' : ml.host_name,
- 'listaddr' : ml.GetListEmail(),
- 'listinfo_url': ml.GetAbsoluteScriptURL('listinfo'),
- 'requestaddr' : ml.GetRequestEmail(),
- 'adminaddr' : ml.GetAdminEmail(),
- 'version' : Mailman.mm_cfg.VERSION,
- }
- header = 'Big change in %(listname)s@%(listhost)s mailing list' % dict
- msg['Subject'] = header
- msg.AppendToBody(Mailman.Utils.maketext('convert.txt', dict))
- ml.DeliverToList(msg, users, None, None)
+def SendExplanation(mlist, users):
+ adminaddr = mlist.GetAdminEmail()
+ d = {'listname' : mlist.real_name,
+ 'listhost' : mlist.host_name,
+ 'listaddr' : mlist.GetListEmail(),
+ 'listinfo_url': mlist.GetAbsoluteScriptURL('listinfo'),
+ 'requestaddr' : mlist.GetRequestEmail(),
+ 'adminaddr' : adminaddr,
+ 'version' : mm_cfg.VERSION,
+ }
+ text = Utils.maketext('convert.txt', d)
+ subject = 'Big change in %(listname)s@%(listhost)s mailing list' % d
+ msg = Message.OutgoingMessage(text)
+ msg['From'] = adminaddr
+ msg['Subject'] = subject
+ msg.recips = users
+ HandlerAPI.DeliverToUser(mlist, msg)
@@ -161,8 +164,8 @@ def main():
sys.exit(1)
try:
- ml = Mailman.MailList.MailList(listname)
- except Mailman.Errors.MMUnknownListError:
+ ml = MailList.MailList(listname)
+ except Errors.MMUnknownListError:
usage(1, 'You must first create the list by running: newlist %s' %
listname)
if send_welcome_msg == -1:
@@ -201,19 +204,15 @@ def main():
# `name' was not subscribed, find out why. On failures,
# result[name] is set from sys.exc_info()[:2]
e, v = result[name]
- if e is Mailman.Errors.MMAlreadyAMember:
+ if e is Errors.MMAlreadyAMember:
print 'Already subscribed (skipping):', name
- elif issubclass(e, Mailman.Errors.EmailAddressError):
+ elif issubclass(e, Errors.EmailAddressError):
if name == '': name = '( blank line )'
print "Not a valid email address:", name
if send_changes_msg:
SendExplanation(ml, nmembers + dmembers)
finally:
- while 1:
- children = Mailman.Utils.Reap()
- if not children:
- break
ml.Unlock()
main()