Improve resilience to malformed email addresses
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
1.2.2
|
||||
- Improve resilience to malformed email addresses
|
||||
- Improve README.md formating for markdown display on pypi
|
||||
- Improve documentation in dkimpy-milter.conf (5) and README.md for signing
|
||||
for multiple domains (Thanks to Stefano Rivera)
|
||||
|
||||
@@ -141,6 +141,8 @@ class dkimMilter(Milter.Base):
|
||||
self.fdomain = self.author.split('@')[1].lower()
|
||||
except IndexError as er:
|
||||
pass # self.author was not a proper email address
|
||||
# This keeps non-ascii characters out of the From domain
|
||||
self.fdomain = str(codecs.encode(self.fdomain, 'ascii', 'replace'), 'ascii', 'ignore')
|
||||
if (self.conf.get('Syslog') and
|
||||
self.conf.get('debugLevel') >= 1):
|
||||
syslog.syslog("{0}: {1}".format(name, val))
|
||||
@@ -148,6 +150,10 @@ class dkimMilter(Milter.Base):
|
||||
self.arheaders.append(val)
|
||||
if self.fp:
|
||||
try:
|
||||
if lname == 'from':
|
||||
# Non-ascii in email address localpart is legal, so this is a special case
|
||||
self.fp.write(b"%s: %s\n" % (codecs.encode(name, 'ascii'), codecs.encode(val, 'UTF-8', 'replace')))
|
||||
else:
|
||||
self.fp.write(b"%s: %s\n" % (codecs.encode(name, 'ascii'), codecs.encode(val, 'ascii')))
|
||||
except:
|
||||
# Don't choke on header fields with non-ascii garbage in them.
|
||||
|
||||
Reference in New Issue
Block a user