From: Matthias A. <mat...@gm...> - 2020-05-07 17:58:30
|
[re-send with fixed quotation markers] Am 06.05.20 um 20:14 schrieb Hans Carlson: > I'm using fetchmail-6.4.4. > > For about a year now I've been seeing the following in my log file for > mail coming from yahoo (imap.mail.yahoo.com). This happens regardless > of the user. Hans, Yahoo's mail server is broken, and your trace proves it. Please report this to Yahoo (but don't ask my how, I don't know their contacts). Details below. > I did a debug session and from what I can tell the problem appears to be > the response from the imap EXPUNGE command. It seems to be missing some > information? (at least based on the response from another server that > does work - see below). The Yahoo IMAP server is expunging prematurely, at a time when it is not allowed to. This is a server behaviour (malfunction) that is EXPLICITLY FORBIDDEN by the IMAP4r1 standard (RFC3501) page 73 section 7.4.1 EXPUNGE Response: An EXPUNGE response MUST NOT be sent when no command is in progress, nor while responding to a FETCH, STORE, or SEARCH command. This rule is necessary to prevent a loss of synchronization of message sequence numbers between client and server. > # This is imap.mail.yahoo.com > $ fetchmail -vvv -d0 --nodetach --nosyslog SERVERNAME > ... > fetchmail: IMAP> A0009 STORE 1 +FLAGS (\Seen \Deleted) > fetchmail: IMAP< * 1 FETCH (FLAGS (\Deleted \Seen $NotJunk)) > fetchmail: IMAP< * 1 EXPUNGE > fetchmail: IMAP< * 0 EXISTS > fetchmail: IMAP< A0009 OK STORE completed > fetchmail: IMAP> A0010 EXPUNGE > fetchmail: IMAP< A0010 OK EXPUNGE completed > fetchmail: mail expunge mismatch (0 actual != 1 expected) > fetchmail: IMAP> A0011 LOGOUT > fetchmail: IMAP< * BYE IMAP4rev1 Server logging out > fetchmail: IMAP< A0011 OK LOGOUT completed > > If I try an account on a different server that functions correctly > (imap.gmx.com), the response from EXPUNGE shows what I assume > fetchmail is expecting to see. BUT comparing the yahoo response to > the gmx response it appears yahoo may be sending that information as > part of the STORE response? > > # This is imap.gmx.com > $ fetchmail -vvv -d0 --nodetach --nosyslog SERVERNAME > ... > fetchmail: IMAP> A0008 STORE 1 +FLAGS (\Seen \Deleted) > fetchmail: IMAP< * 1 FETCH (FLAGS (\Recent \Deleted \Seen)) > fetchmail: IMAP< A0008 OK STORE completed > fetchmail: IMAP> A0009 EXPUNGE > fetchmail: IMAP< * 1 EXPUNGE > fetchmail: IMAP< * 0 EXISTS > fetchmail: IMAP< * 0 RECENT > fetchmail: IMAP< A0009 OK EXPUNGE completed > fetchmail: selecting or re-polling default folder > fetchmail: 0 messages waiting after re-poll > fetchmail: IMAP> A0010 LOGOUT > fetchmail: IMAP< * BYE Server logging out > fetchmail: IMAP< A0010 OK LOGOUT completed > > So... is there any way around this issue? I will not add new code that works around MUST-NOT violations of a server. You may get away with avoiding to mark messages deleted (--keep), but then you cannot use --all. HTH Regards, Matthias |