Add support for setting recipient name and sender name

This commit is contained in:
Magnus Hagander
2017-12-18 16:21:01 +01:00
parent dfd46afae4
commit 7d9ed68b46
2 changed files with 13 additions and 6 deletions

View File

@ -1,21 +1,27 @@
from email.mime.text import MIMEText from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart from email.mime.multipart import MIMEMultipart
from email.mime.nonmultipart import MIMENonMultipart from email.mime.nonmultipart import MIMENonMultipart
from email.Utils import formatdate from email.Utils import formatdate, formataddr
from email.Utils import make_msgid from email.Utils import make_msgid
from email import encoders from email import encoders
from email.header import Header
from models import QueuedMail from models import QueuedMail
def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, usergenerated=False, cc=None, replyto=None): def _encoded_email_header(name, email):
if name:
return formataddr((str(Header(name, 'utf-8')), email))
return email
def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, usergenerated=False, cc=None, replyto=None, sendername=None, receivername=None):
# attachment format, each is a tuple of (name, mimetype,contents) # attachment format, each is a tuple of (name, mimetype,contents)
# content should be *binary* and not base64 encoded, since we need to # content should be *binary* and not base64 encoded, since we need to
# use the base64 routines from the email library to get a properly # use the base64 routines from the email library to get a properly
# formatted output message # formatted output message
msg = MIMEMultipart() msg = MIMEMultipart()
msg['Subject'] = subject msg['Subject'] = subject
msg['To'] = receiver msg['To'] = _encoded_email_header(receivername, receiver)
msg['From'] = sender msg['From'] = _encoded_email_header(sendername, sender)
if cc: if cc:
msg['Cc'] = cc msg['Cc'] = cc
if replyto: if replyto:

View File

@ -8,10 +8,11 @@ from pgweb.mailqueue.util import send_simple_mail
from pgweb.util.helpers import template_to_string from pgweb.util.helpers import template_to_string
import re import re
def send_template_mail(sender, receiver, subject, templatename, templateattr={}, usergenerated=False, cc=None, replyto=None): def send_template_mail(sender, receiver, subject, templatename, templateattr={}, usergenerated=False, cc=None, replyto=None, receivername=None, sendername=None):
send_simple_mail(sender, receiver, subject, send_simple_mail(sender, receiver, subject,
template_to_string(templatename, templateattr), template_to_string(templatename, templateattr),
usergenerated=usergenerated, cc=cc, replyto=replyto) usergenerated=usergenerated, cc=cc, replyto=replyto,
receivername=receivername, sendername=sendername)
def get_client_ip(request): def get_client_ip(request):
""" """