[Gmail] Automatisch oude reclame e-mails verwijderen

Pagina: 1
Acties:

Vraag


  • Kappade
  • Registratie: Oktober 2009
  • Laatst online: 04-05 08:07
Beste Tweakers,

Na lang zoeken en proberen hoop ik dat iemand mij de gouden tip kan geven.

Situatie waar ik een oplossing voor zoek
Dagelijks krijg ik in mijn (Reclame) box in Gmail e-mail van aanbieding sites. Nu is dat zelf geen probleem want ik zou mij gewoon kunnen uitschrijven. Nee, ik wil ze best hebben maar ik kijk er niet elke dag en "mis" hierdoor aanbiedingen van dagen ervoor; die zijn niet meer geldig. Oftewel alles van ouder dan 1 dag hoef ik niet te zien; mag automatisch weggegooid worden.


Wat ik al gevonden of geprobeerd heb
Ik ben gaan zoeken op internet en dacht het gevonden te hebben op:

https://duntuk.com/how-cr...mails-older-x-amount-days

Dus: een regel aanmaken met de volgende waardes. Bijvoorbeeld voor de e-mails van iBOOD:

van: antwoord@mailer.ibood.com
aan: <leeg>
onderwerp: <leeg>
met de woorden: category:promotions older_than:1d

echter komt er bij het toepassen de volgende melding:

Filterzoekopdrachten met 'label:', 'in:', 'is:', periode (bijvoorbeeld 'before:' of 'after:') of sterrencriteria (bijvoorbeeld 'has:yellow-star') worden afgeraden, omdat ze nooit overeenkomen met inkomende e-mail. Wil je doorgaan met de volgende stap?

Bij het opslaan/toepassen werkt het 1x maar daarna niet meer en blijft mijn Reclame bak vollopen met e-mails van deze afzender.


Ik kom er maar niet uit en kan niets (recent) vinden over deze situatie.


Wat mis ik nu?
Of kan het gevraagde simpelweg niet met Gmail? Heeft dan wellicht iemand een ander idee?


Alvast bedankt! _/-\o_


...

Beste antwoord (via Kappade op 22-11-2019 16:08)


  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function cleanUp() {
  var delayDays = 1 // Enter # of days before messages are moved to trash
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var label = GmailApp.getUserLabelByName("Reclame");
  var threads = label.getThreads();
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].getLastMessageDate()<maxDate) 
    {
      var messages = threads[i].getMessages();
      for (var j=0; j < messages.length; j++) {
        if (messages[j].isUnread()) 
         {
          threads[i].moveToTrash();
         }
      }
    }
  }
}


Deze gooit alle unread reclame ouder dan een dag weg. Oh, en check even de naam van het label, want dat kan bij jou best 'promotions' zijn o.i.d.

Veel plezier ermee.

[ Voor 11% gewijzigd door Jivebunny op 22-11-2019 16:09 ]

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna

Alle reacties


Acties:
  • +1 Henk 'm!

  • Melantrix
  • Registratie: Maart 2009
  • Laatst online: 05-05 22:19
Ik heb zelf een soort gelijke oplossing via scripting gedaan. Ik mark alle unread email die archived zijn automatisch en het script loopt elke x minuten. Script draait gewoon in google cloud volgens mij. zie ook:
https://ctrlq.org/code/19712-mark-archived-gmail-read.
bovenstaande link was het snelste wat ik kon vinden, dit is niet wat ik zelf heb draaien, mocht dat nodig zijn kan ik het wel even opzoeken.

Wellicht kan je daar wat mee.

[ Voor 20% gewijzigd door Melantrix op 21-11-2019 15:34 ]

"Never attribute to malice that which is adequately explained by stupidity"


Acties:
  • 0 Henk 'm!

  • Kappade
  • Registratie: Oktober 2009
  • Laatst online: 04-05 08:07
Bedankt voor je reactie.

Maar dat is: het markeren van alle ongelezen e-mail --> die al gearchiveerd is<---. Dat heb je dan al handmatig gedaan neem ik aan?

Ik zoek een automatisch verwijder actie op e-mail die ik nog niet heb aangeraakt

Acties:
  • 0 Henk 'm!

  • Melantrix
  • Registratie: Maart 2009
  • Laatst online: 05-05 22:19
Dat klopt inderdaad. Punt van mijn antwoord was ook meer, je hebt een script platform die met Gmail integreert. Volgens mij kan je daarmee bereiken wat jij wilt.

Je kan namelijk een filter maken en vervolgens daar acties op doen. In jouw geval kan je dus een filter maken op basis van afzender oid, wat nog niet gelezen is en ouder is dan een dag. En vervolgens verwijder of archiveer je het.

Ik ken de ins en outs niet van wat er precies mogelijk is, maar kijk even naar script.google.com of daar wat mogelijk is. Ik kan je in iedergeval vertellen dat het platform goed werkt!

"Never attribute to malice that which is adequately explained by stupidity"


Acties:
  • 0 Henk 'm!

  • Marzman
  • Registratie: December 2001
  • Niet online

Marzman

They'll never get caught.

Ik heb dat ook ooit gedaan maar ben toen ook andere mail verloren. Te veel te soepele filters.

Ik laat nu alles maar staan, archiveren en ik zie het ook niet meer. Het zal toch nooit vol raken. Iedere keer wordt de opslag weet vergroot door Google.

Edit: hoewel, zit op 87 procent vol nu ik het eens check. Nog 2 GB, dat is voller dan ik dacht :).

☻/ Please consider the environment before printing this signature
/▌
/ \ <-- This is bob. copy and paste him and he will soon take over the world.


Acties:
  • 0 Henk 'm!

  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

Je kan het ook met een script oplossen

https://script.google.com

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function cleanUp() {
  var delayDays = 1 // Enter # of days before messages are moved to trash
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var label = GmailApp.getUserLabelByName("Reclame");
  var threads = label.getThreads();
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].getLastMessageDate()<maxDate)
      {
        threads[i].moveToTrash();
      }
  }
}
Kappade schreef op vrijdag 22 november 2019 @ 14:08:
Ik zoek een automatisch verwijder actie op e-mail die ik nog niet heb aangeraakt
Misschien wil je nog wat rommelen met de if statement op basis van gelezen ongelezen zo te horen

[ Voor 22% gewijzigd door Jivebunny op 22-11-2019 15:11 . Reden: script aangepast naar 1 dag delay ]

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna


Acties:
  • +1 Henk 'm!

  • TheFes
  • Registratie: Juni 2001
  • Laatst online: 15:42
De filters die je instelt worden alleen automatisch toegepast op nieuwe inkomende mail.
Een nieuwe inkomende mail is nooit ouder dan 1 dag, dus dit zal nooit automatisch gaan met behulp van filters.

Zoals al aangegeven is de beste optie denk ik een Google Script, wat je elke nacht laat runnen.

Home Assistant configuratie


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function cleanUp() {
  var delayDays = 1 // Enter # of days before messages are moved to trash
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var label = GmailApp.getUserLabelByName("Reclame");
  var threads = label.getThreads();
  for (var i = 0; i < threads.length; i++) {
    if (threads[i].getLastMessageDate()<maxDate) 
    {
      var messages = threads[i].getMessages();
      for (var j=0; j < messages.length; j++) {
        if (messages[j].isUnread()) 
         {
          threads[i].moveToTrash();
         }
      }
    }
  }
}


Deze gooit alle unread reclame ouder dan een dag weg. Oh, en check even de naam van het label, want dat kan bij jou best 'promotions' zijn o.i.d.

Veel plezier ermee.

[ Voor 11% gewijzigd door Jivebunny op 22-11-2019 16:09 ]

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna


Acties:
  • 0 Henk 'm!

  • Kappade
  • Registratie: Oktober 2009
  • Laatst online: 04-05 08:07
Bedankt allen! Ik ga (dat) Google Script proberen.

Acties:
  • +1 Henk 'm!

  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

Kappade schreef op vrijdag 22 november 2019 @ 16:07:
Bedankt allen! Ik ga (dat) Google Script proberen.
Je moet misschien nog wel even het label controleren. Kan zomaar 'promotions' zijn in jouw geval.

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna


Acties:
  • +1 Henk 'm!

  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

@Kappade

Ik heb em nog wat makkelijker gemaakt en deze werkt sowieso. Net mijn reclame box flink opgeschoond voor de afgelopen 30 dagen haha.

code:
1
2
3
4
5
6
7
8
9
10
11
function cleanUp() {
  var delayDays = 1 // Enter # of days before messages are moved to trash
  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++) {
      {
        threads[i].moveToTrash();
      }
  }
}

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna


Acties:
  • +1 Henk 'm!

  • Kappade
  • Registratie: Oktober 2009
  • Laatst online: 04-05 08:07
UPDATE:

Het is mij uiteindelijk gelukt dat script op Google Script te zetten en automatisch te laten werken. Ik ben/was totaal niet bekend op dit vlak en kwam niet gelijk tot het gewenste resultaat; het werkt niet?. Voor de volledigheid van dit topic en het helpen van anderen hierbij de key tot succes:

Bij het simpel uitvoeren van (alleen) het script komt er een foutmelding 'cleanUp function not found'. Googlen naar deze foutmelding hielp mij ook niet gek veel dus ik ging wat verder kijken op dat Google Script. Bij het zien van 'Triggers' viel het kwartje: het script is maar een onderdeel/de helft van het geheel: je moet een Trigger aanmaken die dit script gebruikt. Bij de trigger stel je vervolgens in wanneer het automatisch moet lopen. Makes sense :+

Het snelste wanneer een trigger kan lopen is om het uur, dus het was gisteren voor mij afwachten of de ingestelde trigger die gebruik maakt van het 'cleanUp' script na een uur zijn werk gedaan zou hebben.

Ik was het vandaag een beetje vergeten maar toen ik in mijn Gmail onder Reclame keek zag ik een hoop e-mails niet meer! :) Ingelogd op Google Script en zag sinds activatie netjes elk uur een succevolle verwerking _/-\o_ :*) TOP!

Dit smaakt naar meer nu ik dat Google Script ken.

@Jivebunny : kan jij mij even snel op weg helpen met een kleine uitbreiding van het script: het definieren van de sender/e-mailadres waarvan de e-mail alleen opgeruimd moet worden. Ik wil dat het enkel van de dagelijkse aanbiedingsites opnemen in dit script: info@email.ibood.com en newsletter@outspot.nl

Nogmaals thanks iedereen voor het helpen hierbij, dit was een wens die ik al jaaaaren had en veel tijd gaat schelen in het steeds moeten verwijderen van (oude) reclame. _/-\o_

Acties:
  • +1 Henk 'm!

  • Jivebunny
  • Registratie: November 2010
  • Niet online

Jivebunny

Fail to plan. Plan to fail.

Dan moet je je script even uitbreiden waar de regel met GmailApp.search('category:promotions is:unread'); staat.

Dit wordt dan:
code:
1
var threads = GmailApp.search('from:(info@email.ibood.com OR newsletter@outspot.nl) category:promotions is:unread');


In feite kan je in de zoekbalk in gmail als je op de dropdown klikt zelf helemaal opstellen wat de gmailapp.search query moet worden. Zodra je op zoeken klikt dan zie je in de zoekbalk bovenin eigenlijk precies wat je moet overnemen.

Nu is deze wat specifieker, want als je daar twee afzenders invult, dan laat ie alleen mails zien met beide afzenders in dezelfde thread (want komma gescheiden). Hier moet je dus met bijvoorbeeld OR of AND gaan werken.

Ik heb het maar in een blogje uiteengezet, misschien handig voor anderen

[ Voor 17% gewijzigd door Jivebunny op 05-12-2019 11:58 ]

Pixel 7 | NAS: HP Gen8 e3-1265L v2 16GB 12TB unRAID 6.9.2 | D: Ryzen 5600x 16GB 3000mhz RX 6800 XT MB Acer 27" IPS 144hz | Nissan Leaf 40 Tekna


Acties:
  • +1 Henk 'm!

  • karel-lodewijk
  • Registratie: December 2009
  • Laatst online: 24-03 14:47
Ik heb dit script gebruikt op de mailbox van mijn ouders, die hun volledige google opslag vol gekregen hebben met meer dan 70k reclame mails. Maar het probleem was dat scripts maar maximum 6 minuten mogen draaien voor ze falen. Dit is maar genoeg om een paar 100 mails te verwijderen.

Dus ik heb het script op een trigger gezet die elk uur draait en het script wat aangepast zodat het stopt na 5 minuten zonder te mislukken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const MAX_EXECUTION_TIME = 60 * 1000 * 5; //5 minutes
const NOW = Date.now();

function cleanUp() {
  var delayDays = 90; // Enter # of days before messages are moved to trash
  var maxDate = new Date();
  maxDate.setDate(maxDate.getDate()-delayDays);
  var threads = GmailApp.search('category:promotions is:unread');
  for (var i = 0; i < threads.length && MAX_EXECUTION_TIME > Date.now() - NOW; i++) {
    if (threads[i].getLastMessageDate() < maxDate) {
      threads[i].moveToTrash();
    }
  }
}

[ Voor 37% gewijzigd door karel-lodewijk op 10-10-2023 18:06 ]

Pagina: 1