from flask import render_template, current_app from email.mime.text import MIMEText from email.utils import formatdate, make_msgid from email import charset from email.utils import formataddr import smtplib charset.add_charset('utf-8', charset.SHORTEST, charset.QP) def format_message(user, subject, body): from_name = current_app.config['FROM_NAME'] from_addr = current_app.config['FROM_ADDR'] msg = MIMEText(body, 'plain', 'UTF-8') msg['Subject'] = subject msg['To'] = formataddr((user.mail_to_name, user.email)) msg['From'] = formataddr((from_name, from_addr)) msg['Date'] = formatdate() msg['Message-ID'] = make_msgid() return msg def send_mail(user, subject, body): bounce_addr = current_app.config['FROM_ADDR'] msg = format_message(user, subject, body) msg_as_string = msg.as_string() if not current_app.config['REALLY_SEND_MAIL']: # during development return s = smtplib.SMTP('localhost') s.sendmail(bounce_addr, [user.email], msg_as_string) s.quit() def send_signup_mail(user): ''' unused so far ''' subject = u'xanadu: verify your account' body = render_template('mail/signup.txt', user=user) send_mail(user, subject, body)