diff --git a/python/mailserver3.py b/python/mailserver3.py index b9e6a44..7f0c3e6 100644 --- a/python/mailserver3.py +++ b/python/mailserver3.py @@ -3,6 +3,7 @@ import ssl from aiosmtpd.controller import Controller from email.parser import BytesParser +from email.header import decode_header, make_header from email import policy import os import re @@ -52,6 +53,8 @@ async def handle_DATA(self, server, session, envelope): # Parse the email message = BytesParser(policy=policy.default).parsebytes(envelope.content) + subject = str(make_header(decode_header(message['subject']))) + # Separate HTML and plaintext parts plaintext = '' @@ -99,7 +102,7 @@ async def handle_DATA(self, server, session, envelope): edata = { - 'subject': message['subject'], + 'subject': subject, 'body': plaintext, 'htmlbody': self.replace_cid_with_attachment_id(html, attachments,filenamebase,em), 'from': message['from'],