import smtplib import logging from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header from flask import current_app mail_config = current_app.config['mail'] 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) try: smtp = smtplib.SMTP_SSL(mail_config['host'], int(mail_config['port'])) smtp.login(mail_config['username'], mail_config['password']) smtp.sendmail(mail_config['username'], to, mail.as_string()) except Exception as e: logger.error("sendmail error: %s", repr(e)) smtp.quit()