-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ProtonMail bridge sends unsolicited mailbox updates despite no IDLE command was issued by the client #221
Comments
I think this is following RFC
which means here
the server is notifying client that flag has changed to message with I agree that this part of IMAP is unfriendly for client implementation and we are trying to have changes to reply in more expected way in future. If you understand and agree with my answer I suggest to close this issue. |
Hm, I understand this paragraph in a different way. it describes a response such as:
Here the server notices the client about a changed state on UID 51744 while a FETCH command ran. Same could have happened while a NOOP. In my report the client did nothing at all and no command was running. But still, the server sent itself data. The RFC on IMAP IDLE makes it IMHO very clear that without IDLE a client must poll to get updates. |
Actually, that is good point. Unfortunately, this is hard to control from Bridge code base right now. We would need to make a significant refactor of underlying go-imap library in order to fix this. We are working on solution but in this stage it is very hard to give timeline. |
This is not a bug. RFC3501 explicitly permits the server to send untagged responses pretty much whenever it wants (with a few exceptions); this is covered in section 5.3. |
The following trace shows the problem.
My client does a "SELECT INBOX" and then nothing. All of a sudden the sever sends
* 51989 FETCH (FLAGS (NonJunk) UID 51990)
.IMHO this violates the IMAP protocol.
Unsolicited mailbox updates are only allowed as part of a command result or while the client is idling (after the IDLE command).
The text was updated successfully, but these errors were encountered: