use uids to manipulate mails
[imapami.git] / imapami / actions.py
index 169588c..8653ea0 100644 (file)
@@ -170,7 +170,7 @@ class ImapamiActionCopy(ImapamiAction):
         imap = ami.imap
         dest = self.evaluate(self.dest, ami, mail.msg)
         imap.create(dest)
-        ret, msg = imap.copy(mail.item, dest)
+        ret, msg = imap.uid("COPY", mail.item, dest)
         if ret != "OK":
             ami.logger.warning(
                 "imap copy returned %s: %s" % (ret, str(msg)))
@@ -205,7 +205,7 @@ class ImapamiActionChangeFlag(ImapamiAction):
             cmd = '-FLAGS'
         flag = '\\' + self.evaluate(self.flag, ami,
                                     mail.msg)
-        ret, msg = imap.store(mail.item, cmd, flag)
+        ret, msg = imap.uid("STORE", mail.item, cmd, flag)
         if ret != "OK":
             ami.logger.warning(
                 "imap store '%s %s' returned %s: %s" % (
@@ -276,12 +276,12 @@ class ImapamiActionMove(ImapamiAction):
         imap = ami.imap
         dest = self.evaluate(self.dest, ami, mail.msg)
         imap.create(dest)
-        ret, msg = imap.copy(mail.item, dest)
+        ret, msg = imap.uid("COPY", mail.item, dest)
         if ret != "OK":
             ami.logger.warning(
                 "imap copy returned %s: %s" % (ret, str(msg)))
             return False
-        ret, msg = imap.store(mail.item, '+FLAGS', '\\Deleted')
+        ret, msg = imap.uid("STORE", mail.item, '+FLAGS', '\\Deleted')
         if ret != "OK":
             ami.logger.warning(
                 "imap delete returned %s: %s" % (ret, str(msg)))