Am Samstag, den 06.02.2021, 11:03 -0700 schrieb Zan Lynx:
On 2/6/21 9:06 AM, Volker Wysk wrote:I've had the situation that the IMAP server didn't "manage concurrent connections to one account in a sane manner". This is what happened. I had two clients listening to one IMAP server with IMAP IDLE (evolution and getmail). It happened that both clients saw a new mail and tried to download it (or part of it, like the header). One client came first and deleted the message from the server. Then the second one got an error, because it tried to retrieve a message that was no longer there. In evolution (when being the second one), I got an error message "Cannot get message...".One of the clients deleted (and expunged I assume) the message? This "problem" falls into the set of "problems" that are user error. OBVIOUSLY, if an email message is deleted then it is gone. The question then would be why one of your clients is configured to do that?
I guess I haven't made myself clear enough that I don't have this problem any longer. I had created an account in evolution to access my upstream mail server, because something in my system didn't work or had to be reinstalled. I don't remember the details. I have a local Dovecot mail (IMAP) server and a getmail process which fetches my mail from my upstream mail server and saves it in the Dovecot server. That getmail/Dovecot wasn't operational and I used that Evolution account to access my mail. When my system worked again, I had the described situation. I had my getmail running and the evolution account was also still active. Disabling (or deleting) that evolution account made the problem go away. Anonymous Japhering said he wanted to point two evolution accounts to the same mail server. So I thought the situation was similar.
I don't see what kind of "sane manner" you could expect here. It is exactly like a shared filesystem on a network server. If one client deletes a file, and then a second client tries to open that file, the file isn't there! It was deleted!
The question is, whether it is an error when the file (or message) isn't there any longer. In the IMAP case, it may be an error when a message ID doesn't exist any longer. But it may also be harmless. The client can't tell the difference. Perhaps, the IMAP protocol could discriminate between invalid and expired message IDs... But that's speculation.
If you are using getmail to retrieve your email and then delete it, then do not point any other clients at that IMAP server.
That's my point.
Use a local IMAP server and have getmail deliver to that local server. Then point Evolution at the local server.
That's exactly what I'm doing.
Or use a local Maildir. Although I remember a few bugs with Evolution and simultaneous Maildir access, it has been a long time and I assume they were fixed. Because of course Evolution wants to play well with others. Right? Or I see, checking the documentation for getmail, that there's a "delete_after" option that will only delete messages after leaving them on the server for a while.
Cheers, Volker
Attachment:
signature.asc
Description: This is a digitally signed message part