|
@@ -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:
|