Merge pull request #107 from memanikantan/master

Query and mark emails as flagged/starred.
This commit is contained in:
Martin Rusev
2017-10-29 09:46:36 +01:00
committed by GitHub
3 changed files with 22 additions and 0 deletions

View File

@@ -60,6 +60,10 @@ class Imbox:
logger.info("Mark UID {} with \\Seen FLAG".format(int(uid)))
self.connection.uid('STORE', uid, '+FLAGS', '(\\Seen)')
def mark_flag(self, uid):
logger.info("Mark UID {} with \\Flagged FLAG".format(int(uid)))
self.connection.uid('STORE', uid, '+FLAGS', '(\\Flagged)')
def delete(self, uid):
logger.info("Mark UID {} with \\Deleted FLAG and expunge.".format(int(uid)))
mov, data = self.connection.uid('STORE', uid, '+FLAGS', '(\\Deleted)')

View File

@@ -17,6 +17,8 @@ def build_search_query(**kwargs):
# Parse keyword arguments
unread = kwargs.get('unread', False)
unflagged = kwargs.get('unflagged', False)
flagged = kwargs.get('flagged', False)
sent_from = kwargs.get('sent_from', False)
sent_to = kwargs.get('sent_to', False)
date__gt = kwargs.get('date__gt', False)
@@ -32,6 +34,12 @@ def build_search_query(**kwargs):
if unread:
query.append("(UNSEEN)")
if unflagged:
query.append("(UNFLAGGED)")
if flagged:
query.append("(FLAGGED)")
if sent_from:
query.append('(FROM "%s")' % sent_from)

View File

@@ -15,6 +15,16 @@ class TestQuery(unittest.TestCase):
res = build_search_query(unread=True)
self.assertEqual(res, "(UNSEEN)")
def test_unflagged(self):
res = build_search_query(unflagged=True)
self.assertEqual(res, "(UNFLAGGED)")
def test_flagged(self):
res = build_search_query(flagged=True)
self.assertEqual(res, "(FLAGGED)")
def test_sent_from(self):
res = build_search_query(sent_from='test@example.com')