Enregistrer la taille des messages au lieu d'écrire zéro

FixEmailService
Expédié
9 août 2026 à 04:41 UTC
Auteur
Kamo
Commite
8fa2944

SearchIndexService a écrit tailleBytes 0 pour chaque message qu'il a jamais indexé, sous le commentaire "Non disponible à partir de l'enveloppe". Il était disponible - l'occasion Le profil ne l'a tout simplement jamais demandé. Chaque ligne de l'adresse électronique par courrier électronique.metadata.search.index est 0 octets dans la production, donc le stockage de boîte aux lettres dit comme zéro pour chaque organisation, et toute comptabilité de stockage construite sur l'indice aurait hérité de cela. - EmailImapService ajoute FetchProfile.Item.SI-E, donc la RFC822.SI-E est pré-semeculée avec l'enveloppe plutôt que de coûter un aller-retour par message, et toEnvelope le porte à travers. - GraphMailProvider sélectionne "taille", la même quantité, donc les totaux de la boîte aux lettres signifie la même chose quel que soit le fournisseur d'une organisation. - EmailSizeBackfillService répare les lignes déjà écrites, en lots bornés groupé par (membre, dossier) de sorte que chaque groupe est un aller-retour IMAP. Une UID le dossier ne reste plus en position non calibré au lieu d'être enregistré comme zéro et inconnus ne sont pas les mêmes, et les confondrerait de façon permanente. sous-déposer la boîte aux lettres. Ajout également EmailImapService.messageSizes, qui lit les tailles pour un ensemble UID en un seul aller-retour; les redéployer via getMessage permettrait de chercher des corps de message entiers pour lire un numéro que le serveur publie dans l'enveloppe. 6 nouveaux essais, 146 au total, tous passants.

Tous les changements

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation