From: Thorsten Glaser Date: Wed, 23 Jan 2013 15:25:35 +0100 Subject: Fix encoding of From and To headers Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638994 --- rss2email.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rss2email.py b/rss2email.py index a6c3cbe..bdfb41a 100755 --- a/rss2email.py +++ b/rss2email.py @@ -114,6 +114,12 @@ from email.MIMEText import MIMEText from email.Header import Header as _Header from email.Utils import parseaddr, formataddr +def name_format(realname, mailaddress): + if not realname: + return mailaddress + foo = formataddr(("." + realname, mailaddress)) + return foo.replace(".", "", 1) + class Header(_Header): # Work-around for def append(self, s=None, *args, **kwargs): @@ -166,7 +172,7 @@ def send(sender, recipient, subject, body, contenttype, extraheaders=None, smtps # Create the message ('plain' stands for Content-Type: text/plain) msg = MIMEText(body.encode(body_charset), contenttype, body_charset) - msg['To'] = formataddr((recipient_name, recipient_addr)) + msg['To'] = name_format(recipient_name, recipient_addr) msg['Subject'] = Header(unicode(subject), header_charset) for hdr in extraheaders.keys(): try: @@ -174,7 +180,7 @@ def send(sender, recipient, subject, body, contenttype, extraheaders=None, smtps except: msg[hdr] = Header(extraheaders[hdr]) - fromhdr = formataddr((sender_name, sender_addr)) + fromhdr = name_format(sender_name, sender_addr) msg['From'] = fromhdr msg_as_string = msg.as_string()