41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
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)
|