def do_msg_status(self, userid, mbox, msgid):
account = self._get_account(userid)
msg = yield account.get_message_by_msgid(mbox, msgid)
if msg is None:
raise Exception("Not found message id: " + msgid)
headers = msg.get_headers()
encryption = headers.get(IncomingMail.LEAP_ENCRYPTION_HEADER, '')
signature = headers.get(IncomingMail.LEAP_SIGNATURE_HEADER, '')
status = {}
pubkey_re = re.compile(' pubkey="([0-9A-F]*)"')
fingerprint = first(pubkey_re.findall(signature))
status['signature'] = signature.split(';')[0]
status['sign_fp'] = fingerprint
status['encryption'] = encryption
if ((IncomingMail.LEAP_ENCRYPTION_DECRYPTED == encryption) and
(IncomingMail.LEAP_SIGNATURE_VALID == status['signature'])):
status['secured'] = True
else:
status['secured'] = False
defer.returnValue(status)
评论列表
文章目录