Uploaded image for project: 'Z-Push'
  1. Z-Push
  2. ZP-1279

Imap backend delete

    Details

    • Type: Improvement
    • Status: QA
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 2.3.7
    • Fix Version/s: 2.3.8 beta2, 2.3.8
    • Component/s: None
    • Labels:
      None

      Description

      When the IMAP backend gets a "delete" command it performs a set of the "deleted" flag on the message followed by an immediate "expunge." This is how IMAP deletes things, but there's a problem with doing that in an Exchange server.

      Let's assume you have two clients connected to the same IMAP server account. One is on Exchange through Z-Push. The second is using IMAP via Thunderbird. When the Thunderbird user hits "delete", this does not do an expunge – it just sets the flag. The messages are still there in the folder, but are marked "deleted" (usually struck-through in the subject.)

      Now the same user deletes a message on their phone. This marks the message deleted on the phone and then submits an "expunge", which deletes not just the one message marked *but all the others* that the instance on the desktop marked! What's worse is that they're *really gone*; the folder is compacted on an "Expunge" and thus there's no way to retrieve them.

      This change modifies the behavior of the backend so that it only executes an expunge if you're in the trash folder. In all other cases a "delete" moves the message to the trash instead. This prevents the surprise that otherwise awaits you if there's a desktop client connected to the same account (Thunderbird, and some others, can be configured to do this as well should the user want consistent operation across user interfaces.)

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tickerguy Karl Denninger
                Reporter:
                tickerguy Karl Denninger
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 20 minutes
                  20m