Supprimer en masse des emails dans Gmail avec Google Apps Script

Gmail ne permet pas toujours de supprimer facilement de grandes quantités d’emails correspondant à certains critères. Voici une solution rapide utilisant Google Apps Script.

  1. Accédez à script.google.com et créez un nouveau projet
  2. Copiez le code ci-dessous dans l’éditeur
  3. Modifiez la ligne var searchQuery = '...' avec vos critères de recherche
  4. Cliquez sur ▶️ pour exécuter le script
  5. Autorisez l’accès à votre compte Gmail quand demandé
/**
 * Script pour supprimer en masse des emails dans Gmail
 */
function deleteEmails() {
  // Modifiez cette ligne avec vos critères de recherche
  var searchQuery = 'from:(support@example.com) subject:logwatch';
  
  // Nombre maximum d'emails à traiter en une fois
  var batchSize = 100;
  
  // Obtenir les threads correspondant à la recherche
  var threads = GmailApp.search(searchQuery, 0, batchSize);
  
  // Compteurs pour le suivi
  var totalThreads = threads.length;
  var deletedThreads = 0;
  
  // Supprimer les threads par lots
  while (threads.length > 0) {
    // Suppression du lot actuel
    GmailApp.moveThreadsToTrash(threads);
    
    // Mettre à jour le compteur
    deletedThreads += threads.length;
    
    // Journaliser la progression
    Logger.log('Suppression de ' + deletedThreads + ' sur ' + totalThreads + ' threads trouvés');
    
    // Obtenir le prochain lot
    threads = GmailApp.search(searchQuery, 0, batchSize);
    
    // Petite pause pour éviter de dépasser les quotas
    Utilities.sleep(1000);
  }
  
  Logger.log('Terminé. ' + deletedThreads + ' threads ont été déplacés vers la corbeille.');
}

Exemples de critères de recherche Gmail

  • from:newsletter@example.com – Emails d’un expéditeur spécifique
  • subject:"rappel de réunion" – Emails avec un sujet précis
  • older_than:3m – Emails de plus de 3 mois
  • has:attachment larger:10M – Emails avec pièces jointes de plus de 10 Mo
  • label:social – Emails dans une catégorie spécifique

Avantages par rapport à la suppression manuelle

  • Fonctionne pour des milliers d’emails
  • Pas besoin de supprimer page par page
  • S’exécute en arrière-plan, libérant votre navigateur

Pour vider définitivement la corbeille après la suppression, ajoutez une deuxième fonction et exécutez-la séparément (nécessite d’activer l’API Gmail dans Services) :

function emptyTrash() {
  Gmail.Users.Settings.emptyTrash('me');
  Logger.log('Corbeille vidée.');
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site uses Akismet to reduce spam. Learn how your comment data is processed.