diff options
| author | bwarsaw | 2002-03-15 17:34:29 +0000 |
|---|---|---|
| committer | bwarsaw | 2002-03-15 17:34:29 +0000 |
| commit | 2c34527aaabd003509f1ea453225c6b4b6c1925e (patch) | |
| tree | 3c19d4cf5af8e39f64f69dcd1c9db91dd02f6e75 | |
| parent | 1158dadadb40bc2d541b00e96fe03391ec8f212c (diff) | |
| download | mailman-2c34527aaabd003509f1ea453225c6b4b6c1925e.tar.gz mailman-2c34527aaabd003509f1ea453225c6b4b6c1925e.tar.zst mailman-2c34527aaabd003509f1ea453225c6b4b6c1925e.zip | |
| -rw-r--r-- | Mailman/MailCommandHandler.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Mailman/MailCommandHandler.py b/Mailman/MailCommandHandler.py index 1e5572ea8..24c6fbef8 100644 --- a/Mailman/MailCommandHandler.py +++ b/Mailman/MailCommandHandler.py @@ -25,6 +25,7 @@ import sys import re import traceback import email.Iterators +import email.Utils from cStringIO import StringIO from Mailman import mm_cfg @@ -626,8 +627,9 @@ approval."""), trunc=0) def ProcessSubscribeCmd(self, args, cmd, mail): """Parse subscription request and send confirmation request.""" digest = self.digest_is_default - password = "" - address = "" + password = '' + address = '' + fullname = '' done_digest = 0 if not len(args): password = Utils.MakeRandomPassword() @@ -655,13 +657,18 @@ Usage: subscribe [password] [digest|nodigest] [address=<email-address>]""")) if not password: password = Utils.MakeRandomPassword() if not address: - subscribe_address = Utils.LCDomain(mail.get_sender()) + sender = mail['from'] + if not sender: + sender = mail.get_sender() + fullname, addr = email.Utils.parseaddr(sender) + subscribe_address = Utils.LCDomain(addr) else: subscribe_address = address remote = mail.get_sender() try: # FIXME: extract fullname userdesc = UserDesc(address=subscribe_address, + fullname=fullname, password=password, digest=digest) self.AddMember(userdesc, remote) |
