Résumé

  • Après activation explicite, RFC 9586 interdit les numéros de séquence et fait porter UIDFETCH et VANISHED par des UID. Une table volatile disparaît, pas l’obligation de reconstruire l’état.
  • L’identité utile reste le triplet boîte, UIDVALIDITY, UID. Annonce, activation, fin de commande, écriture du cache et convergence applicative sont cinq constats différents.

Dans une grande boîte, supprimer le troisième message décale tous les numéros qui suivent. Le client doit sans cesse relier cette position relative à un UID plus durable. UIDONLY choisit une réponse nette : ne plus faire circuler la position.

La capacité annoncée ne suffit pourtant pas. Le client envoie ENABLE UIDONLY; ensuite seulement les variantes ordinaires de FETCH, STORE, SEARCH, COPY et MOVE deviennent invalides. Les réponses emploient UIDFETCH, les suppressions VANISHED, et une utilisation interdite reçoit UIDREQUIRED. Cette rupture visible vaut mieux qu’une compatibilité trompeuse.

Le gain est réel, car un numéro de séquence peut être réattribué pendant la session. Mais l’UID n’est pas universel. RFC 9051 l’attache à une boîte et à sa génération UIDVALIDITY. Si cette valeur change, le client doit renoncer à l’ancien espace de noms. UIDNEXT n’annonce pas non plus un futur objet certain : il fournit une borne, avec des trous possibles et des messages qui peuvent disparaître.

UIDONLY ne modifie ni EXISTS ni RECENT. Il fonctionne avec CONDSTORE et QRESYNC, mais ne les impose pas. Les MODSEQ peuvent accompagner UIDFETCH; l’historique des suppressions et la couverture de resynchronisation restent des éléments séparés. Adresser correctement un message ne signifie donc pas posséder une photographie complète.

Lors d’un déplacement, COPYUID peut relier l’UID source à l’UID de destination et à la nouvelle génération. Le résultat étiqueté clôt la commande IMAP. Rien de cela ne prouve qu’un index, une archive ou un téléphone a validé l’objet. Le dernier kilomètre garde sa propre autorité.

La version préliminaire qui mettait zéro dans le champ du numéro illustre le danger : elle a été abandonnée car un client ancien pouvait croire au faux identifiant et corrompre son cache. Conserver la forme tout en changeant le sens est plus risqué que déclarer une nouvelle forme.

La preuve opérationnelle doit donc relier : capacité, activation sur cette connexion, boîte et UIDVALIDITY, changements observés, résultat étiqueté, écriture locale durable puis réconciliation applicative. Aucun voyant isolé ne doit résumer la chaîne.

Sources