diff --git a/src/mailman/handlers/avoid_duplicates.py b/src/mailman/handlers/avoid_duplicates.py index e6df7313d..10a8a6bfc 100644 --- a/src/mailman/handlers/avoid_duplicates.py +++ b/src/mailman/handlers/avoid_duplicates.py @@ -23,7 +23,9 @@ has already received a copy, we either drop the message, add a duplicate warning header, or pass it through, depending on the user's preferences. """ -from email.utils import getaddresses, formataddr +import re + +from email.utils import formataddr, parseaddr from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from public import public @@ -56,7 +58,9 @@ class AvoidDuplicates: # Figure out the set of explicit recipients. cc_addresses = {} for header in ('to', 'cc', 'resent-to', 'resent-cc'): - addrs = getaddresses(msg.get_all(header, [])) + addrs = [] + for addr in msg.get_all(header, []) + addrs.append(parseaddr(re.sub('[\r\n]', '', addr))) header_addresses = dict((addr, formataddr((name, addr))) for name, addr in addrs if addr) The above patch is invalid. It is missing a colon at the end of + for addr in msg.get_all(header, [])