diff --git a/ietf/mailtrigger/models.py b/ietf/mailtrigger/models.py index 6a6b1d17e..ac4ecc36c 100644 --- a/ietf/mailtrigger/models.py +++ b/ietf/mailtrigger/models.py @@ -3,8 +3,22 @@ from django.db import models from django.template import Template, Context +from email.utils import parseaddr + from ietf.group.models import Role +def clean_duplicates(addrlist): + retval = set() + for a in addrlist: + (name,addr) = parseaddr(a) + if (name,addr)==('',''): + retval.add(a) + elif name: + retval.add('"%s" <%s>'%(name,addr)) + else: + retval.add(addr) + return list(retval) + class MailTrigger(models.Model): slug = models.CharField(max_length=32, primary_key=True) desc = models.TextField(blank=True) @@ -37,8 +51,7 @@ class Recipient(models.Model): if rendering: retval.extend([x.strip() for x in rendering.split(',')]) - retval = list(set(retval)) - return retval + return clean_duplicates(retval) def gather_doc_group_chairs(self, **kwargs): addrs = []