diff --git a/CHANGELOG.md b/CHANGELOG.md index 8744a07..9355491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Changelog - Restore compatability with <8.0.0 configuration files (with deprecation warnings) - Move `parsedmarc.__version__` to `parsedmarc.meta.__version__` - Set default `reports_folder` to `Inbox` (rather than `INBOX`) when `msgraph` is configured +- Mark a message as read when fetching a message from Microsoft Graph 8.0.3 ----- diff --git a/parsedmarc/mail/graph.py b/parsedmarc/mail/graph.py index 2237b04..8be8e9a 100644 --- a/parsedmarc/mail/graph.py +++ b/parsedmarc/mail/graph.py @@ -63,9 +63,18 @@ class MSGraphConnection(MailboxConnection): emails = result.json()['value'] return [email['id'] for email in emails] + def mark_message_read(self, message_id: str): + """Marks a message as read""" + url = f'/users/{self.mailbox_name}/messages/{message_id}' + resp = self._client.patch(url, data={"isRead": "true"}) + if resp.status_code != 200: + raise RuntimeWarning(f"Failed to mark message read" + f"{resp.status_code}: {resp.json()}") + def fetch_message(self, message_id: str): url = f'/users/{self.mailbox_name}/messages/{message_id}/$value' result = self._client.get(url) + self.mark_message_read(message_id) return result.text def delete_message(self, message_id: str):