diff --git a/emails/message.py b/emails/message.py index eec2a78..cca653f 100644 --- a/emails/message.py +++ b/emails/message.py @@ -224,7 +224,8 @@ class MessageBuildMixin(object): self.set_header(msg, 'Subject', subject) self.set_header(msg, 'From', self.encode_address_header(self._mail_from), encode=False) - self.set_header(msg, 'To', self._mail_to and self.encode_address_header(self._mail_to[0]) or None, encode=False) + self.set_header(msg, 'To', self._mail_to and ", ".join([self.encode_address_header(addr) + for addr in self._mail_to]) or None, encode=False) return msg diff --git a/emails/testsuite/message/test_message.py b/emails/testsuite/message/test_message.py index e21dce1..3a16434 100644 --- a/emails/testsuite/message/test_message.py +++ b/emails/testsuite/message/test_message.py @@ -170,3 +170,13 @@ def test_message_id(): m = Message(message_id='XXX', **params) assert m.as_message()['Message-ID'] == 'XXX' + +def test_several_recipients_in_to_header(): + params = dict(html='...', mail_from='a@b.c') + + m = Message(mail_to=['d@e.f', 'g@h.i'], **params) + assert m.as_message()['To'] == 'd@e.f, g@h.i' + + m = Message(mail_to=[('♡', 'd@e.f'), ('웃', 'g@h.i')], **params) + assert m.as_message()['To'] == '=?utf-8?b?4pmh?= , =?utf-8?b?7JuD?= ' +