Misschien een beetje een verwarrende titel. Even uiteenzetten, want dan begrijp je beter waar ik het over heb. Voor mensen die een Gmail adres hebben, zullen vast wel bekend zijn met de volle inbox. En dan met name de reclame mails en updates van allerlei diensten (track en trace code mailtjes en bestellingsbevestigingen). Stel nu, dat je net zoals ik, meestal niet meteen die mailtjes wil weggooien of archiveren. En het dan vergeet, of de moeite niet neemt om het op te ruimen...

Dus, KADOOTJE VAN DE SINT omdat het vandaag 5 december is (link naar mijn oplossing onderin deze blogpost šŸŽ)

Volle inboxmeldingen

Na een aantal jaar heeft ook Google wel genoeg van al die mails van je die je maar 'bewaard'. Dus kreeg ik meldingen dat mijn inbox toch echt wel een beetje heel vol zat. Nu ben ik een beetje een luie ITer, en was nog maar net begonnen om handmatig op te gaan ruimen, of ik had er alweer genoeg van.

Dat kan makkelijker

Ik dacht, dit moet toch makkelijker kunnen? Ik wil in feite prima van oude mailtjes af, maar zoals ik al zei, die online shopping bestellingen en de mailtjes ervan zijn toch meestal nog wel handig wanneer het op een retour aan komt. Dus die van afgelopen maand wil ik nog wel houden. Alles van daarvoor kan in principe wel weg. Gelukkig heb ik al een tijdje geleden in Gmail aangezet dat ik aparte categorieƫn voor bepaalde mailtjes wil hebben, en heb Gmail inmiddels wel kunnen trainen welke mailtjes reclame zijn, welke updates (dus bestellingen/track+trace/etc.) zijn en welke gewoon netjes in mijn Postvak In moeten komen.

Dit en de zoekfunctie in Gmail maken het best eenvoudig om een goede selectie te krijgen van de mailtjes die wel weg kunnen. Daarna klik ik op alles selecteren en gooi het weg.

Opgeruimd staat netjes

Zo, alles eens even goed opgeruimd in mijn mailbox. En dat fijne opgeruimde gevoel was helaas maar voor korte duur. De nieuwe reclame mailtjes en updates kwamen alweer binnen. Dat was het moment dat ik dacht, dit wil ik niet iedere dag/maand gaan doen, of iedere x jaar op het moment dat het te vol zit.

Is dit te automatiseren?

Ik ben wat gaan Googlen want ik hou niet van repetitieve handelingen die een computer prima zelf kan zolang ik de juiste instructies en randvoorwaarden stel.

Gelukkig is er tegenwoordig Google Script (https://script.google.com)! šŸ‘ŒšŸŽ‰

Je kan er zelf een script maken, en door je functie in het script daarna aan een trigger te hangen, het automatisch periodiek laten uitvoeren!

Super chill, dit is wat ik zocht. Ik heb een script gemaakt voor elke verschillende inbox, want reclame mag best maandelijks en tot een maand terug worden opgeschoond, maar de updates van bestellingen vind ik wel prima als die maandelijks tot een jaar terug worden bewaard.

In het kort

  1. Ga naar Gmail > Instellingen > Inbox en zet de vinkjes aan voor de categorieƫn.
Gmail instellingen inbox categorieƫn aanzetten
De eerste stap, categorieƫn aanzetten in Gmail.

2. Ga naar de zoekbalk om wat zoekopdrachten te maken die de set van mailtjes teruggeven die jij periodiek wilt opschonen.

Dit is de zoekopdracht voor alle mails binnen de categorie reclames. Kopieer het uiteindelijke resultaat even naar je kladblok of klembord, want dit gebruiken we straks ook in het script om de juiste mails te gaan verwijderen.

3. Ga naar script.google.com en log in.

4. Maak een nieuw project aan.

5. Gebruik deze code bijvoorbeeld als basis:

function cleanUpReclame() {
  var delayDays = 30 // Aantal dagen waarna mails naar de vuilnisbak gaan
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var threads = GmailApp.search('category:promotions is:unread');
  for (var i = 0; i < threads.length; i++) {
      if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }
}
function cleanUpUpdates() {
  var delayDays = 364 // Aantal dagen waarna mails naar de vuilnisbak gaan
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var threads = GmailApp.search('category:updates');
  for (var i = 0; i < threads.length; i++) {
      if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }
}

function cleanUpForums() {
  var delayDays = 364 // Aantal dagen waarna mails naar de vuilnisbak gaan
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var threads = GmailApp.search('category:forums');
  for (var i = 0; i < threads.length; i++) {
      if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }
}

function cleanUpSocial() {
  var delayDays = 364 // Aantal dagen waarna mails naar de vuilnisbak gaan
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var threads = GmailApp.search('category:social');
  for (var i = 0; i < threads.length; i++) {
      if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }
}

6. Maak je keuzes even bij de variabelen (delayDays en de .search('category:xxx');
Je kan namelijk de functie gewoon kopiƫren zoveel je wil, even een andere naam geven bij de function declaratie, en met name de zoekopdracht bij deze regel kan je veel bereiken:

var threads = GmailApp.search('category:promotions is:unread');

Zo heb je bijvoorbeeld, en in mijn voorbeeld hier heb ik er ook bij staan: is:unread. Dit komt gewoon van de zoekopdrachten die je kan maken bij stap 2 hierboven. Zo kan je er ook nog bepaalde afzenders bij zetten etc., bijvoorbeeld:

var threads = GmailApp.search('category:promotions is:unread from:([email protected] OR [email protected]');

Dit gooit alle mails van ibood OF outspot van het type reclame weg die nog niet zijn gelezen. Hier kan je dus leuke selecties maken voor bepaalde mailtjes. Vaak zijn aanbiedingen tijdelijk geldig dus ja. Als je het mailtje dan na 2 dagen nog niet hebt gelezen bijvoorbeeld, kan je het wel weggooien.

7. We zijn er bijna, nu niet vergeten de trigger in te stellen.
Wanneer je het stukje code hebt gemaakt en hebt opgeslagen kan je teruggaan naar je project en je zal je functie zien terugkomen in het overzichtje. Klik op Triggers:

Triggers instellen voor je script
Trigger aanmaken of bestaande wijzigen
Kies per actie wanneer je de functie wil laten uitvoeren

Hier kan je de door jouw gekozen functienamen periodiek laten uitvoeren. Dit is het laatste en daarna ben je voorlopig klaar met je mailbox. Nou ja, wanneer het om opruimen gaat dan.

Tot slot

Omdat Google helemaal van het delen van dit soort handige dingen is tegenwoordig, hier de link om de code even makkelijk over te nemen naar je eigen account: https://script.google.com/d/1OfbhSmPbagoAaCVvhsccDssVk6L-84OBc7pa9ewt60Cs-r4nNTnp9pNJ/edit?usp=sharing

Vragen mag

Laat hieronder een reactie achter en ik zal je proberen te helpen als het niet lukt. šŸ˜Ž