Comment 33 for bug 365270

Revision history for this message
Paul Smith (psmith-gnu) wrote :

It would be good if people could be explicit about what version of Evolution they're using AND (more importantly) what type of email server they're connecting to. Evolution has to interact with them differently (because the services have different capabilities). Are you using locally-delivered email to a local mailbox, as Knut seems to be? Are you connecting to an ISP mail provider using POP? Using IMAP? Are you connecting to Google mail? Are you connecting to an Exchange server? Something else? In short, please go to your email account (Edit->Preferences->Mail Accounts) and click the Recieving Mail tab and tell use what the "Server Type" setting is.

I'm only speaking about connecting to IMAP servers here; I'm also familiar with Evolution connecting to Exchange servers but that works very differently. I've not used local mail delivery or POP (which work similarly to each other) in many years.

In IMAP, there is no way that the current behavior of Evolution will lose mail in the way Knut suggests. A "move" operation is implemented as a copy and after the copy succeeds, the original is marked as deleted by setting a flag. No mail is actually removed from any folder during this operation and so no mail can be lost. In fact that is what typically generates complaints: that your trash folder has EXTRA mail in it that you didn't expect. Sometime later you will initiate an Expunge operation and that will go through your folders and remove emails that are marked as deleted. This operation is performed by the IMAP server, not Evolution (all Evolution does is send a single "expunge" command) in an atomic way so that it does not cause any mail loss (unless there's a bug in the IMAP server but there's nothing Evolution can do about that, and switching to a different mail client will not help). During Expunge, if you have an email that is marked deleted that you didn't actually want to be deleted then yes, it will be lost. But only mail marked deleted is gone: if you'd copied it to another folder and that copy is not marked for deletion, then the copy is still present.

One way people using IMAP with Evolution can get frustrated is if they tend to store things in their Trash folder; they want to use Trash as a kind of longer-term storage folder. You definitely cannot do that with Evolution; you need to choose a different folder and put things you want to save there.

FYI, Thunderbird connecting to an IMAP server has the same issues that Evolution does: they have to because an IMAP server only publishes a certain interface and all clients have to use the same interface. What Thunderbird does differently is it runs the Expunge operation for you all the time in the background. So, when you "move" mail in Thunderbird it does the same copy and mark as deleted operation that Evolution does, but then it also automatically runs Expunge so that the "extra" deleted copy is gone. When you delete mail in Thunderbird it actually "moves" (copy, mark as deleted, expunge) the email to a real folder (sometimes named Trash). Thus expunging doesn't cause that mail to go away, you have to delete it specifically from the Trash folder.

Trevor: I'm sorry that you lost an important mail. It would be helpful if you could describe in detail the steps which caused the mail to be lost. There's nothing unsafe about the algorithm Evolution uses to move or delete mail--that is, there is no race condition, etc. in the design that could cause mail to be lost. However, all software has bugs and Evolution is no exception. It's possible that you've run across a bug and if so I'm sure the Evolution developers would like to fix it. In order to fix it they need more specific information on what happened.