-
Notifications
You must be signed in to change notification settings - Fork 127
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
IMAP UID is not unique and thus violates RFC 2060 #292
Comments
The UID is coming from the key of the key-value store, so it's not a sequence number. Maybe you're mixing up IMAP UIDs and IMAP sequence numbers? |
What I'm seeing from the IMAP client side is what should be a UID is just a sequence number:
As I understand it, the number after I added some logging to this line and it appears |
Shouldn't this line be:
rather than
? |
Based on some preliminary testing, that edit fixes the problem I identified where the IMAP client cannot keep track of messages when the sequence changes. Shouldn't you be unserializing the value of the UID, rather than the key? |
Sorry for the serial updates -- I guess my approach is not right either. But the UID I see telnetting into the official bridge is not the same as the UID that Hydroxide is exposing. |
Per RFC 2060 § 2.3.1.1, messages should have unique 32-bit values as UID. It appears that the UID exposed by Hydroxide is a sequence number based on the order of messages in the mail store. So the first message is UID 1, second UID 2, etc. If a message is added to the mail store that appears chronologically in the middle of the stored sequence, it causes all the UIDs to be bumped -- so what used to be UID 2 is now UID 3, for example. This means that IMAP agents like getmail are unable to correctly track which messages have been previously seen.
I thought Proton actually exposed a true UID for each message item; couldn't that be used for the IMAP UID rather than just a sequence number which breaks tracking?
The text was updated successfully, but these errors were encountered: