diff --git a/extract_outlook.py b/extract_outlook.py index 7a00532..74b387e 100644 --- a/extract_outlook.py +++ b/extract_outlook.py @@ -42,11 +42,12 @@ def load_metadata(profile: pathlib.Path) -> dict[str, dict]: cursor.execute(""" SELECT PathToDataFile, Message_SenderList, Message_SenderAddressList, Message_DisplayTo, Message_ToRecipientAddressList, Message_CCRecipientAddressList, - Message_NormalizedSubject, Message_TimeReceived, Message_TimeSent, Message_MessageID + Message_NormalizedSubject, Message_TimeReceived, Message_TimeSent, Message_MessageID, + Threads_ThreadID FROM Mail """) for row in cursor: - path, s_list, s_addr, t_list, t_addr, cc_addr, subj, date_ts, sent_ts, msg_id = row + path, s_list, s_addr, t_list, t_addr, cc_addr, subj, date_ts, sent_ts, msg_id, thread_id = row if not path: continue uuid = pathlib.Path(path).stem meta[uuid] = { @@ -57,6 +58,7 @@ def load_metadata(profile: pathlib.Path) -> dict[str, dict]: "date": date_ts, "sent_date": sent_ts, "message_id": msg_id, + "thread_id": thread_id, "attachments": [] } diff --git a/parsers/message.py b/parsers/message.py index b5bcc66..9a6e6e2 100644 --- a/parsers/message.py +++ b/parsers/message.py @@ -147,6 +147,7 @@ def parse_message(data: bytes, meta: dict | None = None, attachments: list[tuple if meta.get("cc"): msg["Cc"] = meta["cc"] if meta.get("subject"): msg["Subject"] = meta["subject"] if meta.get("message_id"): msg["Message-ID"] = meta["message_id"] + if meta.get("thread_id"): msg["X-Outlook-Thread-ID"] = meta["thread_id"] ts_received = meta.get("date", -1) ts_sent = meta.get("sent_date", -1)