From 487994b633ab449302ec1ae09ad8699f6478eca6 Mon Sep 17 00:00:00 2001 From: Brendan Howell Date: Tue, 2 May 2017 20:22:13 +0200 Subject: [PATCH] massage unread message data to be serializable dict --- screenless/bureau/mailroom/mailroom.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/screenless/bureau/mailroom/mailroom.py b/screenless/bureau/mailroom/mailroom.py index 3b5e534..fd6899e 100644 --- a/screenless/bureau/mailroom/mailroom.py +++ b/screenless/bureau/mailroom/mailroom.py @@ -261,8 +261,27 @@ class MailRoom(Bureau): """ messages = self.imapserv.sort("ARRIVAL", ["UNSEEN"]) print("%d unread messages in INBOX" % len(messages)) - return self.imapserv.fetch(messages, ['FLAGS', 'INTERNALDATE', + resp = self.imapserv.fetch(messages, ['FLAGS', 'INTERNALDATE', 'ENVELOPE', 'RFC822.SIZE']) + + # massage into a serializable dict + msgs = [] + + for msgid, data in resp.items(): + msg = {} + env = data["ENVELOPE"] + + msg["msgid"] = str(msgid) + sender = env.from_[0] + msg["fromaddr"] = sender.mailbox + "@" + sender.host + msg["fromname"] = sender.name + msg["date"] = data["INTERNALDATE"] + msg["size"] = data["RFC822.SIZE"] + msg["subject"] = env.subject + + msgs.append(msg) + + return msgs def main():