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