|  | @@ -1,15 +1,18 @@
 | 
	
		
			
			| 1 |  | -from email.message import Message
 | 
	
		
			
			| 2 |  | -from typing import Union
 | 
	
		
			
			| 3 | 1 |  import sys
 | 
	
		
			
			| 4 | 2 |  import time
 | 
	
		
			
			| 5 | 3 |  import imaplib
 | 
	
		
			
			| 6 |  | -import email
 | 
	
		
			
			| 7 |  | -import email.header
 | 
	
		
			
			|  | 4 | +import datetime
 | 
	
		
			
			|  | 5 | +import json
 | 
	
		
			
			|  | 6 | +from typing import Union
 | 
	
		
			
			|  | 7 | +from email.message import Message
 | 
	
		
			
			| 8 | 8 |  from email.header import Header, decode_header, make_header
 | 
	
		
			
			|  | 9 | +from email.utils import formataddr,parsedate_tz,mktime_tz
 | 
	
		
			
			|  | 10 | +from email import message_from_bytes
 | 
	
		
			
			|  | 11 | +
 | 
	
		
			
			| 9 | 12 |  import requests
 | 
	
		
			
			| 10 |  | -import datetime
 | 
	
		
			
			|  | 13 | +
 | 
	
		
			
			| 11 | 14 |  from tracim.controllers.events import VALID_TOKEN_VALUE
 | 
	
		
			
			| 12 |  | -import json
 | 
	
		
			
			|  | 15 | +
 | 
	
		
			
			| 13 | 16 |  
 | 
	
		
			
			| 14 | 17 |  TRACIM_SPECIAL_KEY_HEADER="X-Tracim-Key"
 | 
	
		
			
			| 15 | 18 |  
 | 
	
	
		
			
			|  | @@ -35,9 +38,9 @@ def decode_mail(msg:Message)-> dict:
 | 
	
		
			
			| 35 | 38 |              mailData[TRACIM_SPECIAL_KEY_HEADER] = str_header(msg[TRACIM_SPECIAL_KEY_HEADER])
 | 
	
		
			
			| 36 | 39 |          # date
 | 
	
		
			
			| 37 | 40 |          date_h = str_header(msg['Date'])
 | 
	
		
			
			| 38 |  | -        date_tuple = email.utils.parsedate_tz(date_h)
 | 
	
		
			
			|  | 41 | +        date_tuple = parsedate_tz(date_h)
 | 
	
		
			
			| 39 | 42 |  
 | 
	
		
			
			| 40 |  | -        mailData['date'] = datetime.datetime.fromtimestamp(email.utils.mktime_tz(date_tuple))
 | 
	
		
			
			|  | 43 | +        mailData['date'] = datetime.datetime.fromtimestamp(mktime_tz(date_tuple))
 | 
	
		
			
			| 41 | 44 |  
 | 
	
		
			
			| 42 | 45 |      except Exception as e:
 | 
	
		
			
			| 43 | 46 |          # TODO: exception -> mail not correctly formatted
 | 
	
	
		
			
			|  | @@ -152,7 +155,7 @@ class MailFetcher(object):
 | 
	
		
			
			| 152 | 155 |                  for num in data[0].split():
 | 
	
		
			
			| 153 | 156 |                      rv, data = self._connection.fetch(num, '(RFC822)')
 | 
	
		
			
			| 154 | 157 |                      if rv == 'OK':
 | 
	
		
			
			| 155 |  | -                        msg = email.message_from_bytes(data[0][1])
 | 
	
		
			
			|  | 158 | +                        msg = message_from_bytes(data[0][1])
 | 
	
		
			
			| 156 | 159 |                          self._mails.append(msg)
 | 
	
		
			
			| 157 | 160 |                          ret = True
 | 
	
		
			
			| 158 | 161 |                      else:
 |