summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorbwarsaw1999-11-24 19:39:55 +0000
committerbwarsaw1999-11-24 19:39:55 +0000
commit81b7204b66c11afc8d2ec844e8f0cd758cfbb9bd (patch)
tree0217abe7e051a2f1e3416fa81fc04bcf9499a2c0 /bin
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.
Diffstat (limited to 'bin')
-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()