[Erp5-report] r14356 - /erp5/trunk/products/ERP5Type/patches/CMFMailIn.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 4 13:28:33 CEST 2007
Author: bartek
Date: Fri May 4 13:28:33 2007
New Revision: 14356
URL: http://svn.erp5.org?rev=14356&view=rev
Log:
Header recoding improved and address parsing too
Modified:
erp5/trunk/products/ERP5Type/patches/CMFMailIn.py
Modified: erp5/trunk/products/ERP5Type/patches/CMFMailIn.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/CMFMailIn.py?rev=14356&r1=14355&r2=14356&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/CMFMailIn.py (original)
+++ erp5/trunk/products/ERP5Type/patches/CMFMailIn.py Fri May 4 13:28:33 2007
@@ -14,7 +14,7 @@
import mimetypes
import email
-from email.Header import decode_header
+from email.Header import decode_header, make_header
from email.Utils import parseaddr
from ZODB.POSException import ConflictError
from zLOG import LOG
@@ -46,18 +46,15 @@
# Recode headers to UTF-8 if needed
for key, value in msg.items():
decoded_value_list = decode_header(value)
- new_value_list = []
- for x in decoded_value_list:
- if x[1] != None:
- new_value_list.append(unicode(x[0], x[1]).encode('utf-8'))
- else:
- new_value_list.append(x[0])
- new_value = ''.join(new_value_list)
+ unicode_value = make_header(decoded_value_list)
+ new_value = unicode_value.__unicode__().encode('utf-8')
# msg.replace_header(key, new_value)
theMail['headers'][key.lower()] = new_value
# Filter mail
- for header in ('to', 'from'):
- theMail['headers'][header] = parseaddr(theMail['headers'][header])[1]
+ for header in ('resent-to', 'resent-from', 'resent-cc', 'resent-sender', 'to', 'from', 'cc', 'sender', 'reply-to'):
+ header_field = theMail['headers'].get(header)
+ if header_field:
+ theMail['headers'][header] = parseaddr(header_field)[1]
# Get attachment
body_found = 0
for part in msg.walk():
More information about the Erp5-report
mailing list