--- a/hyperkitty/models/email.py +++ b/hyperkitty/models/email.py @@ -24,7 +24,7 @@ import logging import os import re from email.message import EmailMessage -from email.utils import formataddr +from email.utils import formataddr, make_msgid from django.conf import settings from django.db import IntegrityError, models @@ -175,7 +175,12 @@ class Email(models.Model): header_date = self.date.astimezone(tz).replace(microsecond=0) # Date format: http://tools.ietf.org/html/rfc5322#section-3.3 msg["Date"] = header_date.strftime("%a, %d %b %Y %H:%M:%S %z") - msg["Message-ID"] = "<%s>" % self.message_id + try: + msg["Message-ID"] = "<%s>" % re.sub('[<>\s]', '', + self.message_id) + except: + msg["Message-ID"] = make_msgid() if self.in_reply_to: msg["In-Reply-To"] = unfold(self.in_reply_to)