Comment 25 for bug 13983

Revision history for this message
Carl Friis-Hansen (carl-friis-hansen) wrote :

For Delete message Evolution is using:
  IMAPv4 EXPUNGE Command
instead of
  \Deleted flag set

For search message Evolution is using:
  fetch all mail, inclusive body where apply, and do a local search (The POP3 way)
instead of
  IMAPv4 SEARCH Command

Here is a fresh example why it is a problem:
--------------------------------------------------------------------------------------
Just lost over 800 deleted emails. I had borrowed a laptop with Ubuntu 9.10, configured my usual IMAP email account in Evolution. There where practical reasons for me not to use my Squirrel mail to the same IMAP account.
After deleting some 800 messages and giving the laptop back, I found that the deleted messages where nowhere on the IMAP server.
--------------------------------------------------------------------------------------

Using many different clients over the last 10 years, this is the first time I encounter an IMAP client that totally missed the Idea with Internet Message Access Protocol. Evolution should display a clear warning, that the application does not follow the standard of the IMAP protocol or they should correct the client ASAP.
This disrespect has gone on since 2005 and has been deemed wishful thinking by the otherwise so great Evolution team.

We can all have different ideas about how an email client should work, but to ignore the whole purpose of the IMAP protocol is not the best way and the proprietary delete and search implementation is also a security concern and massive misuse of Internet bandwidth.

In todays IMAP the "Deleted" flag and the Search command are is to be used.
Flags defined in the IMAP4 protocol serves to tell weather an email is deleted or not. The IMAP server will take care of presenting a deleted email as being in the Trash folder and the server will normally also take care of expunging deleted emails after for example 7 days or so. These flags are stored on the server, so different clients accessing the same mailbox at different times can detect state changes made by other clients.

Sadly it is the same issue with *Server-side searches* that is *not* offered by Evolution. Some of us have more that 10,000 emails and need at times to search through the text body of *all* the messages. Such a search takes about 5 seconds when issuing a Server-side search and the only download are the headers of the result - perfect. Such a search is impossible in Evolution, which only provide a locally implemented search. Theoretically one could wait a day or too for Evolution to download all the email bodies, but how complicated can it be to implement a real Server-side search?

Most other IMAP clients use the correct way of Deleting (and Searching). I think (guess) that the problem, seen from Evolutions' standpoint, is that everything is done correctly with respect to POP3 and that the different architecture need for full blown IMAP4rev1 functionality is problematic.

So my recommendations is to clearly state, in the account definition, something like this:
Server type: IMAP (Partly implemented)
Description: For reading and storing mail on IMAP servers. Delete and Search act in POP3 style.

Until such time the RFC 3501 is implemented regarding Delete and Search.

Carl Friis-Hansen

Reference:
  http://www.rfc-archive.org/getrfc.php?rfc=3501