Nettoyage des libellés Gmail
Trier un arriéré volumineux de Gmail dans les propres libellés du propriétaire, et faire en sorte que les futurs messages se labellisent eux-mêmes.
Les connecteurs Gmail intégrés dans la plupart des assistants labellisent un fil par appel et n'ont pas d'API de filtres. C'est trop lent pour des milliers de messages et ne peut pas empêcher l'accumulation de reprendre. Cette compétence utilise plutôt un serveur MCP Gmail complet, qui offre de véritables filtres côté serveur et des lots de 50 messages.
Avant la première exécution
- Installer le serveur MCP. Voir
install/INSTALL.md. Il nécessite un client OAuth de bureau Google Cloud et une connexion via navigateur. Environ dix minutes, une fois. - Créer le fichier de règles. Copier
references/rules-TEMPLATE.mddans un fichier privé (le modèle suggèremy-rules.md, que.gitignoreexclut déjà) et le remplir à partir de l'historique du compte. Ne jamais inventer les règles. Voir "Apprentissage des règles" ci-dessous.
L'unique règle qui fait fonctionner cela
Les règles sont apprises à partir du propre étiquetage passé du propriétaire, jamais inventées.
Pour chaque expéditeur ou sujet, regarder où cette personne a déjà classé cet expéditeur elle-même, et le copier. Ce n'est que lorsqu'un expéditeur n'apparaît nulle part dans son historique qu'un jugement est autorisé, et il est alors enregistré dans une section "deviné" afin de pouvoir être corrigé. Un mauvais libellé est bon marché à corriger ; un mauvais libellé appliqué silencieusement à 300 messages ne l'est pas.
La deuxième règle, apprise à la dure : le contenu compte, pas seulement l'expéditeur. Un expéditeur est une dimension. Une newsletter sur l'argent provenant d'un éditeur de bien-être mérite également le libellé argent. Un fil peut porter plus d'un libellé.
Apprentissage des règles
Interroger le compte, pas la personne. Pour chaque libellé, lire ce qui s'y trouve déjà :
search_emails: label:"<nom du libellé>"
Lire 30 à 50 résultats et noter les expéditeurs. Cette liste est la règle. Répéter pour chaque libellé. Ensuite, list_email_labels pour obtenir les IDs des libellés, que batch_modify_emails utilise réellement.
Faire cela une fois, l'écrire dans le fichier de règles, et continuer à l'ajouter à chaque passe. Chaque passe découvre des expéditeurs que la précédente n'avait pas vus.
Exécution d'une passe
Une passe est une tranche de travail délimitée, journalisée et réversible. Visez 200 à 300 messages. N'essayez pas de tout faire en une seule exécution.
1. Confirmer que les filtres existent.
list_filters
Si les filtres du fichier de règles sont manquants, les créer d'abord avec create_filter, un par groupe de libellés, en utilisant des critères from:. Les filtres sont la partie qui empêche le problème de revenir.
2. Trouver les courriels non labellisés.
D'abord la boîte de réception :
search_emails: has:nouserlabels in:inbox
Une fois que la boîte de réception ne contient plus que les messages délibérément nus, le reste du travail est l'archivage. Parcourir par date, la limite la plus ancienne se déplaçant à chaque fois :
search_emails: has:nouserlabels -in:inbox -in:sent -in:draft -in:trash -in:spam -in:chats before:YYYY/MM/DD
Prendre 50 à 60 par page. Définir before: sur la date du résultat le plus ancien que vous venez de traiter, et l'appel suivant continue là où vous vous êtes arrêté. C'est plus fiable que les jetons de pagination et cela survit à une interruption.
3. Regrouper par libellé, puis par lot.
Trier la page en une liste d'IDs de messages par libellé, puis un appel batch_modify_emails par libellé avec addLabelIds. Jamais un appel par message.
Si un lot retourne Too many concurrent requests for user, réessayer uniquement les IDs qui ont échoué. L'appel signale exactement lesquels ont échoué.
4. Journaliser. Ajouter une entrée datée au journal d'annulation. Voir "Le journal d'annulation" ci-dessous.
Ne jamais toucher
- Codes de connexion uniques, liens magiques, réinitialisations de mot de passe et alertes de sécurité. Ceux-ci restent non labellisés et ne sont jamais mis à la corbeille. Si une personne a besoin de trouver rapidement un code de connexion, un libellé n'aide pas et une règle de mise à la corbeille nuit activement.
- Tout ce qui figure sur la propre liste "ne jamais labelliser" du propriétaire. Les personnes ont des publications et des expéditeurs qu'elles souhaitent laisser nus, et elles vous le diront. Écrivez chacun dans le fichier de règles au moment où elles le disent, dans leurs propres termes.
- Courriels familiaux et personnels, à moins que le propriétaire ait déjà labellisé cette personne lui-même.
Mise à la corbeille
Mettre à la corbeille uniquement ce que le propriétaire a explicitement autorisé, et uniquement par correspondance de sujet. L'ensemble par défaut sûr est les avis de conditions d'utilisation et de politique de confidentialité :
subject:("terms of service" OR "terms and conditions" OR "terms of use"
OR "privacy policy" OR "user agreement")
negatedQuery: subject:(code OR verification OR verify OR "security alert" OR password)
La requête négative n'est pas facultative. Sans elle, un courriel "Verify your account - updated terms" irait à la Corbeille.
La Corbeille de Gmail est récupérable pendant 30 jours. Rien dans cette compétence ne supprime jamais définitivement.
Le journal d'annulation
Chaque passe ajoute une entrée datée. C'est l'enregistrement qui rend le travail réversible et vérifiable :
- La date et le numéro de passe.
- Si les filtres existaient, et ceux créés.
- Le nombre labellisé, et le nombre par libellé.
- Décisions subjectives, nommées. Quels expéditeurs n'avaient pas de précédent, ce qui a été décidé, et pourquoi. C'est la partie qui sera corrigée plus tard.
- Ce qui a été confirmé comme nu et non touché.
Voir examples/undo-log-EXAMPLE.md. Écrivez-le même lorsque la passe est ennuyeuse. Surtout à ce moment-là.
Les filtres ne touchent pas aux anciens courriels
Cela surprend tout le monde, alors dites-le à haute voix au propriétaire :
Un filtre Gmail ne s'exécute que sur les courriels qui arrivent après la création du filtre. Il ne remonte jamais en arrière. Ainsi, les deux moitiés de cette tâche sont véritablement distinctes : les filtres gèrent l'avenir automatiquement, et l'arriéré d'archives doit être traité manuellement, passe par passe, exactement comme décrit ci-dessus.
Ce qui signifie : après quelques passes qui ont découvert les véritables expéditeurs à fort volume, revenez en arrière et ajoutez également des filtres pour eux. Sinon, ces expéditeurs continuent d'arriver non labellisés et l'arriéré se reconstruit derrière vous.
Annulation d'une passe
Lire l'entrée du journal d'annulation pour la passe, puis batch_modify_emails avec removeLabelIds sur les mêmes IDs de messages. Pour tout ce qui a été mis à la corbeille, untrash fonctionne pendant 30 jours. C'est pourquoi le journal enregistre les comptes et les raisonnements plutôt qu'un simple "fait".