Esempio n. 1
0
 def from_maildir(cls, uid: int, maildir_msg: MaildirMessage,
                  maildir: Maildir, key: str,
                  email_id: Optional[ObjectId],
                  thread_id: Optional[ObjectId],
                  maildir_flags: MaildirFlags) -> Message:
     flag_set = maildir_flags.from_maildir(maildir_msg.get_flags())
     recent = maildir_msg.get_subdir() == 'new'
     msg_dt = datetime.fromtimestamp(maildir_msg.get_date())
     return cls(uid, msg_dt, flag_set,
                email_id=email_id, thread_id=thread_id,
                recent=recent, maildir=maildir, key=key)
Esempio n. 2
0
 def from_maildir(cls, uid: int, maildir_msg: MaildirMessage,
                  maildir_flags: 'MaildirFlags',
                  metadata_only: bool) -> 'Message':
     flag_set = maildir_flags.from_maildir(maildir_msg.get_flags())
     recent = maildir_msg.get_subdir() == 'new'
     msg_dt = datetime.fromtimestamp(maildir_msg.get_date())
     if metadata_only:
         return cls(uid, flag_set, msg_dt, recent=recent,
                    maildir_flags=maildir_flags)
     else:
         msg_data = bytes(maildir_msg)
         return cls.parse(uid, msg_data, flag_set, msg_dt, recent=recent,
                          maildir_flags=maildir_flags)
Esempio n. 3
0
def store_message(maildir, state, uid, message, flags):
    msg = MaildirMessage(message)
    if '\\Seen' in flags:
        msg.add_flag('S')

    flags = msg.get_flags()

    uid = int(uid)
    s = state.get(uid)
    if s:
        if s.flags != flags:
            maildir.set_flags(s.msgkey, flags)
    else:
        key = maildir.add(msg, flags)
        state.put(uid, key, flags)