diff --git a/project/smtp.py b/project/smtp.py index c5b4f12..58afc6f 100644 --- a/project/smtp.py +++ b/project/smtp.py @@ -1,5 +1,6 @@ import smtplib import logging +import email from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header @@ -12,10 +13,15 @@ logger = logging.getLogger('waitress') def sendmail(to: str, subject: str, message: str): if not (mail_config['username'] and mail_config['password']): logger.error("smtp email account is not configured") - mail = MIMEText(message, "plain") - mail['Subject'] = Header(subject) - mail['From'] = Header(mail_config['from']) - mail['To'] = Header(to) + mail = MIMEMultipart('alternative') + mail['Subject'] = Header(subject).encode() + mail['From'] = '%s <%s>' % ( + Header(mail_config['from']).encode(), mail_config['username']) + mail['To'] = to + mail['Message-id'] = email.utils.make_msgid() + mail['Date'] = email.utils.formatdate() + + mail.attach(MIMEText(message, "plain")) try: smtp = smtplib.SMTP_SSL(mail_config['host'], int(mail_config['port'])) smtp.login(mail_config['username'], mail_config['password'])