diff options
Diffstat (limited to 'mailman/commands/join.py')
| -rw-r--r-- | mailman/commands/join.py | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/mailman/commands/join.py b/mailman/commands/join.py index bfc3435e7..45535470f 100644 --- a/mailman/commands/join.py +++ b/mailman/commands/join.py @@ -24,7 +24,7 @@ __all__ = [ from email.header import decode_header, make_header -from email.utils import parseaddr +from email.utils import formataddr, parseaddr from zope.interface import implements from mailman.Utils import MakeRandomPassword @@ -32,6 +32,7 @@ from mailman.configuration import config from mailman.i18n import _ from mailman.interfaces import ( ContinueProcessing, DeliveryMode, IEmailCommand) +from mailman.interfaces.registrar import IRegistrar @@ -56,9 +57,9 @@ example: def process(self, mlist, msg, msgdata, arguments, results): """See `IEmailCommand`.""" # Parse the arguments. - address, delivery_mmode = self._parse_arguments(arguments) + address, delivery_mode = self._parse_arguments(arguments) if address is None: - realname, address = parseaddr(msg['from']) + real_name, address = parseaddr(msg['from']) # Address could be None or the empty string. if not address: address = msg.get_sender() @@ -66,15 +67,11 @@ example: print >> results, _( '$self.name: No valid address found to subscribe') return ContinueProcessing.no - password = MakeRandomPassword() - try: - validate_subscription(mlist, address) - confirm_subscription(mlist, address, realname, password, - delivery_mode, mlist_preferred_language) - except XXX: - pass - print >> results, self.name, address, \ - (_('digest delivery') if digest else _('regular delivery')) + domain = config.domains[mlist.host_name] + registrar = IRegistrar(domain) + registrar.register(address, real_name) + person = formataddr((real_name, address)) + print >> results, _('Confirmation email sent to $person') return ContinueProcessing.yes def _parse_arguments(self, arguments): @@ -122,6 +119,7 @@ example: address = parts[1] return address, delivery_mode + def ignore(): # Fill in empty defaults if digest is None: |
