Skip to content

Commit e51fb60

Browse files
authored
Merge pull request #289 from shalin24999/master
Update msg parser
2 parents ec41ccb + ecbb12e commit e51fb60

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

email/1.2.0/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
requests==2.25.1
22
glom==20.11.0
3-
requests==2.25.1
43
eml-parser==1.17.0
54
msg-parser==1.2.0
65
mail-parser==3.15.0
7-
extract-msg==0.23.1
6+
extract-msg==0.30.9
87
jsonpickle==2.0.0
8+

email/1.2.0/src/app.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import base64
88
import imaplib
99
import smtplib
10-
import eml_parser
1110
import time
1211
import random
1312
import eml_parser
@@ -398,11 +397,25 @@ def parse_email_file(self, file_id, file_extension):
398397
elif file_extension.lower() == 'msg':
399398
print('working with .msg file')
400399
try:
400+
result = {}
401401
msg = MsOxMessage(file_path['data'])
402402
msg_properties_dict = msg.get_properties()
403-
print(msg_properties_dict)
404-
frozen = jsonpickle.encode(msg_properties_dict)
405-
return frozen
403+
frozen = jsonpickle.encode(msg_properties_dict, unpicklable = False)
404+
json_response = json.loads(frozen)
405+
if json_response.get("attachments"):
406+
for i in json_response["attachments"]:
407+
if isinstance(i,dict):
408+
if i.get('data') and 'text' in i.get('AttachMimeTag'):
409+
value = i.get('data').get('py/b64')
410+
i['data']['content'] = base64.b64decode(value).decode()
411+
result['attachments'] = json_response['attachments']
412+
ep = eml_parser.EmlParser()
413+
temp = ep.decode_email_bytes(bytes(msg.get_email_mime_content(),'utf-8'))
414+
result['body'] = temp['body']
415+
msg1 = extract_msg.openMsg(file_path['data'])
416+
result["header"] = dict(msg1.header.items())
417+
result['body_data'] = msg.body
418+
return result
406419
except Exception as e:
407420
return {"Success":"False","Message":f"Exception occured: {e}"}
408421
else:

0 commit comments

Comments
 (0)