more robust email format

This commit is contained in:
wangjiacai 2023-04-20 00:48:52 +08:00
parent a9b4a08357
commit e0eec9630b

View File

@ -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'])