X-Git-Url: http://git.droids-corp.org/?p=imapami.git;a=blobdiff_plain;f=imapami%2Frules.py;fp=imapami%2Frules.py;h=3adff91ccccbef00c3bffaf5762086b97baca501;hp=9efd6dd9b9d88b06782daa184be0939e62c33496;hb=be455c18596343c4c430babff8360b4b0b708586;hpb=3bf7e2c76265fff7d1206990413430f69c13bb62 diff --git a/imapami/rules.py b/imapami/rules.py index 9efd6dd..3adff91 100644 --- a/imapami/rules.py +++ b/imapami/rules.py @@ -156,12 +156,6 @@ class ImapamiRule(object): :returns: A list of IMAP items """ - # select the input mailbox - if self.inbox is not None: - ami.imap.select(self.inbox) - else: - ami.imap.select(inbox) - # search messages matching conditions criteria = "(%s)" % self.get_criteria(ami) ami.logger.debug("processing rule %s, inbox %s, imap criteria %s", @@ -173,6 +167,7 @@ class ImapamiRule(object): return item_list = items[0].split() + item_list = [i for i in item_list if int(i) < ami.uidnext[inbox]] ami.logger.debug("matching mails returned by server: %s", item_list) return item_list @@ -202,15 +197,19 @@ class ImapamiRule(object): ami.logger.debug('get imap parts = %s', parts_str) return parts_str, parts - def process(self, ami, inbox): + def process(self, ami): """ Process the rule. :arg Imapami ami: The Imapami object - :arg string inbox: - The default input mailbox directory. """ + if self.inbox is not None: + inbox = self.inbox + else: + inbox = ami.config["inbox"] + ami.imap.select(inbox) + # get the list of items (mails) matching the condition criteria item_list = self._search(ami, inbox) # determine what parts should be fetched