diff options
| author | klm | 1998-10-17 21:27:38 +0000 |
|---|---|---|
| committer | klm | 1998-10-17 21:27:38 +0000 |
| commit | 9a2370a1d3aa79401463f3f8a20f4a738822b441 (patch) | |
| tree | d971319f37d8fcac51c26897496f97fa53ade417 | |
| parent | e8736406c8450038d24710b4fea750a0a6a420b9 (diff) | |
| download | mailman-9a2370a1d3aa79401463f3f8a20f4a738822b441.tar.gz mailman-9a2370a1d3aa79401463f3f8a20f4a738822b441.tar.zst mailman-9a2370a1d3aa79401463f3f8a20f4a738822b441.zip | |
MailList.GetMemberAdminEmail(): New routine to identify the admin
address for a member - trivially just the members regular address
*unless* we're talking about the member of an umbrella list, in which
case it has the umbrella_member_suffix appended to the account part of
the addr.
This is used everywhere that i was duplicating the functionality in my
last round of checkins, including a few places in MailLists.py as well
as the other files.
| -rw-r--r-- | Mailman/Deliverer.py | 33 | ||||
| -rw-r--r-- | Mailman/HTMLFormatter.py | 5 | ||||
| -rw-r--r-- | Mailman/MailList.py | 22 |
3 files changed, 29 insertions, 31 deletions
diff --git a/Mailman/Deliverer.py b/Mailman/Deliverer.py index 8f71af55f..5614be4ee 100644 --- a/Mailman/Deliverer.py +++ b/Mailman/Deliverer.py @@ -147,12 +147,21 @@ class Deliverer: else: welcome = '' + if self.umbrella_list: + umbrella = Utils.wrap( + "\n(Since this is a list of mailing lists, administrative" + " notices like the password reminder will be sent to" + " your membership administrative address, %s.\n" + % self.GetMemberAdminEmail(name)) + else: + umbrella_spiel = '' # get the text from the template body = Utils.maketext( 'subscribeack.txt', {'real_name' : self.real_name, 'host_name' : self.host_name, 'welcome' : welcome, + 'umbrella' : umbrella, 'emailaddr' : self.GetListEmail(), 'listinfo_url': self.GetAbsoluteScriptURL('listinfo'), 'optionsurl' : self.GetAbsoluteOptionsURL(name), @@ -169,40 +178,22 @@ class Deliverer: else: digest_mode = '' - if self.umbrella_list: - acct, host = tuple(string.split(name, '@')) - recipient = ("%s%s@%s" % - (acct, self.umbrella_member_suffix, host)) - else: - recipient = name - self.SendTextToUser(subject = 'Welcome To "%s"! %s' % (self.real_name, digest_mode), - recipient = recipient, + recipient = self.GetMemberAdminEmail(name), text = self.CreateSubscribeAck(name, password)) def SendUnsubscribeAck(self, name): - if self.umbrella_list: - acct, host = tuple(string.split(name, '@')) - recipient = ("%s%s@%s" % - (acct, self.umbrella_member_suffix, host)) - else: - recipient = name self.SendTextToUser(subject = 'Unsubscribed from "%s"\n' % self.real_name, - recipient = recipient, + recipient = self.GetMemberAdminEmail(name), text = Utils.wrap(self.goodbye_msg)) def MailUserPassword(self, user): listfullname = '%s@%s' % (self.real_name, self.host_name) ok = 1 if self.passwords.has_key(user): - if self.umbrella_list: - acct, host = tuple(string.split(user, '@')) - recipient = ("%s%s@%s" % - (acct, self.umbrella_member_suffix, host)) - else: - recipient = user + recipient = self.GetMemberAdminEmail(user) subj = '%s maillist reminder\n' % listfullname # get the text from the template text = Utils.maketext( diff --git a/Mailman/HTMLFormatter.py b/Mailman/HTMLFormatter.py index b5e640f29..7564252be 100644 --- a/Mailman/HTMLFormatter.py +++ b/Mailman/HTMLFormatter.py @@ -151,11 +151,10 @@ class HTMLFormatter: def FormatUmbrellaNotice(self, user, type): if self.umbrella_list: - acct, host = tuple(string.split(user, '@')) return ("(Note - you are subscribing to a list of maillists, so" " the %s notice will be sent to the admin address" - " for your membership, %s%s@%s.)<p>" - % (type, acct, self.umbrella_member_suffix, host)) + " for your membership, %s.)<p>" + % self.GetMemberAdminEmail(name)) else: return "" diff --git a/Mailman/MailList.py b/Mailman/MailList.py index 30e0bd626..eef5914dc 100644 --- a/Mailman/MailList.py +++ b/Mailman/MailList.py @@ -65,6 +65,19 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, def GetAdminEmail(self): return '%s-admin@%s' % (self._internal_name, self.host_name) + def GetMemberAdminEmail(self, member): + """Usually the member addr, but modified for umbrella lists. + + Umbrella lists have other maillists as members, and so admin stuff + like confirmation requests and passwords must not be sent to the + member addresses - the sublists - but rather to the administrators + of the sublists. This routine picks the right address, considering + regular member address to be their own administrative addresses.""" + if not self.umbrella_list: + return member + else: + acct, host = tuple(string.split(member, '@')) + return "%s%s@%s" % (acct, self.umbrella_member_suffix, host) def GetRequestEmail(self): return '%s-request@%s' % (self._internal_name, self.host_name) @@ -770,6 +783,7 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, else: by = "" remote = "" + recipient = self.GetMemberAdminEmail(name) text = Utils.maketext('verify.txt', {"email" : name, "listaddr" : self.GetListEmail(), @@ -780,12 +794,6 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, "remote" : remote, "listadmin" : self.GetAdminEmail(), }) - if self.umbrella_list: - acct, host = tuple(string.split(name, '@')) - recipient = ("%s%s@%s" % - (acct, self.umbrella_member_suffix, host)) - else: - recipient = name self.SendTextToUser( subject=("%s -- confirmation of subscription -- request %d" % (self.real_name, cookie)), @@ -795,7 +803,7 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, add_headers = ["Reply-to: %s" % self.GetRequestEmail(), "Errors-To: %s" % self.GetAdminEmail()]) if recipient != name: - who = "%s (%s%s)" % (acct, acct, self.umbrella_member_suffix) + who = "%s (%s)" % (name, string.split(recipient, '@')[0]) else: who = name self.LogMsg("subscribe", "%s: pending %s %s", self._internal_name, |
