correctly decode headers
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3701 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									137c2f88f9
								
							
						
					
					
						commit
						0d8be13807
					
				
					 1 changed files with 16 additions and 7 deletions
				
			
		|  | @ -24,7 +24,7 @@ $Id$ | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| import email | import email, email.Header | ||||||
| from logging import getLogger | from logging import getLogger | ||||||
| import os | import os | ||||||
| import time | import time | ||||||
|  | @ -84,13 +84,13 @@ class IMAPCollectionProvider(object): | ||||||
|         resourceType = loopsRoot.getConceptManager()['email'] |         resourceType = loopsRoot.getConceptManager()['email'] | ||||||
|         for addr in addresses: |         for addr in addresses: | ||||||
|             msg = client._collectedObjects[addr] |             msg = client._collectedObjects[addr] | ||||||
|             title = msg['Subject'] |             title = decodeHeader(msg['Subject']) | ||||||
|             sender = msg['From'] |             sender = decodeHeader(msg['From']) | ||||||
|             receiver = msg['To'] |             receiver = decodeHeader(msg['To']) | ||||||
|             raw_date = msg['Date'].rsplit(' ', 1)[0] |             #raw_date = msg['Date'].rsplit(' ', 1)[0] | ||||||
|             fmt = '%a,  %d %b %Y %H:%M:%S' |             #fmt = '%a,  %d %b %Y %H:%M:%S' | ||||||
|             #date = datetime(*(time.strptime(raw_date, fmt)[0:6])) |             #date = datetime(*(time.strptime(raw_date, fmt)[0:6])) | ||||||
|             date = datetime(*(email.Utils.parsedate(raw_date)[0:6])) |             date = datetime(*(email.Utils.parsedate(msg['Date'])[0:6])) | ||||||
|             parts = getPayload(msg) |             parts = getPayload(msg) | ||||||
|             if 'html' in parts: |             if 'html' in parts: | ||||||
|                 text = '<br /><br /><hr /><br /><br />'.join(parts['html']) |                 text = '<br /><br /><hr /><br /><br />'.join(parts['html']) | ||||||
|  | @ -115,6 +115,15 @@ class IMAPCollectionProvider(object): | ||||||
|             yield obj |             yield obj | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def decodeHeader(h): | ||||||
|  |     result = [] | ||||||
|  |     for v, dec in email.Header.decode_header(h): | ||||||
|  |         if dec: | ||||||
|  |             v = v.decode(dec) | ||||||
|  |         result.append(v) | ||||||
|  |     return ''.join(result) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def getPayload(msg): | def getPayload(msg): | ||||||
|     parts = {} |     parts = {} | ||||||
|     for msg in msg.walk(): |     for msg in msg.walk(): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm