GNOME Bugzilla – Bug 349870
Evolution fails to copy sent mail onto IMAP Sent folder when authentication expires
Last modified: 2013-09-10 13:49:54 UTC
Please describe the problem: When using Evolution on an IMAP account with an authentication that can expire (GSSAPI/Kerberos), the expiration causes data to be lost when Evolution tries to put messages onto the IMAP server. Steps to reproduce: 1. Setup IMAP Server with Kerberos authentication 2. Authenticate to Kerberos 3. Wait for the Kerberos ticket to almost expire 4. Start writing a mail, hitting "Send" after the Kerberos ticket expired Actual results: The mail is sent, but Evolution displays two "ticket expired" error messages. While being sent properly, there is no copy kept of the mail. Expected results: (a) get a "Retry / Don't Save [/ Save to Local / Save to ...]" dialog (allowing me to reauthenticate to the kerberos server with another application, or save the mail to local folders/somewhere else) or (b) copy the mail to local Sent folder Does this happen every time? Yes. Other information:
nah, Evo puts it in the local Sent folder when that happens.
At least 2.7.1 doesn't, and I don't see anything related in the ChangeLog. Am I missing something?
david: 2.7.1 is history, if you *want* to run a development version, please use the latest one which is 2.7.90. version 2.6.3 is the current stable release.
Set target milestone to 2.8
Bumping version to a stable release.
*** Bug 451232 has been marked as a duplicate of this bug. ***
Created attachment 114518 [details] [review] proposed eds patch for evolution-data-server; Jeff has right, the code for fallback to local sent folder is there, only the IMAP provider doesn't report errors properly. Maybe other providers too? I also noticed one behavior, when I connect to the server, let evo refresh the folders and then disconnect from the server (more precisely close vpn), then I can write to the stream some bytes, but the errno is set to EAGAIN, which is finally hidden in other calls. My server uses TCP with SSL. I'm not sure hot to properly report such state, because the camel_stream_write doesn't have CamelException parameter. Maybe, when writing to the stream, check for the errno too and return -1 as written when got EAGAIN? It sounds somehow strange, at least for me.
Milan, Im not sure, if they are hidden to the callers explicitly. But anycase, lets try to fix it.
Committed to trunk. Committed revision 9203.
*** Bug 512798 has been marked as a duplicate of this bug. ***
Please re-open: using evolution-2.26.3-1.fc11 with IMAP. This may be the IMAP provider skipping errors again. Whatever, I've lost some sent email. Perhaps relying on perfect reporting of errors needs to be backed up with some backup routines in the IMAP sync code, so even in the case of the reporting failing the mis-filed emails aren't deleted? 1) in hindsight, it's clear there was an authentication issue and one of my IMAP accounts wasn't syncing. There was some IMAP server downtime on Monday (and sporadic connections). I didn't receive any email in that account's inbox for a day or so. Evolution was showing as online all this time (except when going in/out of suspend, when it switched on/offline without fuss). 2) however, during this time I sent many emails. These *apparently* sent ok (and were received, so SMTP auth was ok) and *appeared* to be in my IMAP sent folder. In hindsight these were just cached locally. But I did go and re-read some in the sent folder and they were there. Other IMAP accounts were functioning normally. 3) today I was presented with a password entry dialogue for the account. This is a bit strange as the password hasn't changed. On entering the password there was lots of syncing, and email for the past few days was added to my inbox. 4) Going back to my sent folder the messages I've sent in the last few days aren't there. Again in hindsight, it's as though that account was operating in offline mode. This should have been shown/alerted to the user. More importantly, when syncing back to the IMAP server the locally cached sent emails, which may well be a discrepancy, should *never* be completely deleted. I've searched the filesystem and can't find any obvious copies of the missing sent mails. If there's somewhere specific I should be looking I'd be very grateful to know? Or is there just a log of outgoing emails so I can request copies back from recipients?
Hi Kevin. What you described sounds rather as bug #580198, which is fixed since 2.27.3. The offline mode is creating a journal, and your ~/.evolution/mail/imap/<account>/... can contain some tmp files with messages being treated through the it. I'm not sure now, but I guess those temporary messages are deleted as soon as you go online (after they are ideally copied to the server).
(In reply to comment #12) > Hi Kevin. What you described sounds rather as bug #580198, which is fixed since > 2.27.3. Thanks Milan, although I'm didn't see any crash, it does look like the problem and particularly fixes in #580198 could be applicable.
(In reply to comment #13) > Thanks Milan, although I'm didn't see any crash, it does look like the problem > and particularly fixes in #580198 could be applicable. Yup, even the bug is about crashing, the fix fixed also the offline integration on IMAP.