diff options
| author | bwarsaw | 2002-12-02 14:21:58 +0000 |
|---|---|---|
| committer | bwarsaw | 2002-12-02 14:21:58 +0000 |
| commit | cfdcf7bddc3454f0ee5f598356fb7c9dfa026a3a (patch) | |
| tree | 30a8879a1a17e6dbb19fe669f3f21905f22cda55 | |
| parent | 4372203ed5f8ce09aae46f1d655a70e45ad32252 (diff) | |
| download | mailman-cfdcf7bddc3454f0ee5f598356fb7c9dfa026a3a.tar.gz mailman-cfdcf7bddc3454f0ee5f598356fb7c9dfa026a3a.tar.zst mailman-cfdcf7bddc3454f0ee5f598356fb7c9dfa026a3a.zip | |
check(): First, use parseaddr() to split up any realname/addrs found,
then uniquify the return results based on the address.
| -rw-r--r-- | Mailman/Bouncers/DSN.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Mailman/Bouncers/DSN.py b/Mailman/Bouncers/DSN.py index b240e7bdb..3e040beff 100644 --- a/Mailman/Bouncers/DSN.py +++ b/Mailman/Bouncers/DSN.py @@ -17,6 +17,7 @@ """Parse RFC 1894 (i.e. DSN) bounce formats.""" from email.Iterators import typed_subpart_iterator +from email.Utils import parseaddr from cStringIO import StringIO @@ -59,7 +60,13 @@ def check(msg): # Note that params should already be unquoted. addrs.extend(params) break - return filter(None, addrs) + # Uniquify + rtnaddrs = {} + for a in addrs: + if a is not None: + realname, a = parseaddr(a) + rtnaddrs[a] = 1 + return rtnaddrs.keys() |
