email sending module
This commit is contained in:
parent
efffae848a
commit
5081305229
40
sourcing/mail.py
Normal file
40
sourcing/mail.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
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)
|
Loading…
Reference in a new issue