Avatar billede omdal Nybegynder
24. september 2013 - 16:39 Der er 3 kommentarer og
1 løsning

Google scripting, auto slet gamle mails

Hej alle

Jeg forsøger at lave et script til at slette alle mails der er ældre end X dato i google script ... 

Jeg har haft fulgt denne tutorial : http://lifehacker.com/5986204/automatically-clean-up-gmail-on-a-schedule-with-this-script

men hver gang jeg kører scriptet for jeg blot en besked om : " Running function : my function "
men intet bliver slettet

som nedenstående viser, kan du se at jeg har lavet label på mailsne, så det kan ikke være det
https://docs.google.com/file/d/0B-lUgEVqZBx2V1FSanVDRmFOYlE/edit?usp=sharing

Når jeg kigger i error log ser jeg dette: https://docs.google.com/file/d/0B-lUgEVqZBx2RkgtMWdQdHFyRzA/edit?usp=sharing

Jeg har endda forsøgt dette på denne tråd: http://stackoverflow.com/questions/18254514/how-do-i-know-if-a-google-script-is-actually-running with no luck either..

Nedenfor er scriptet jeg forsøger at kører:

    function myFunction() {

}
function cleanUp() {
var delayDays = 180 // Enter # of days before messages are moved to trash

var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays);

var label = GmailApp.getUserLabelByName("delete me");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
  if (threads[i].getLastMessageDate()<maxDate)
  {
    threads[i].moveToTrash();
  }
}
}

function archiveInbox() {
// Every thread in your Inbox that is read, older than two days, and not labeled "delete me".
var threads = GmailApp.search('label:inbox is:read older_than:2d -label:"delete me"');
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToArchive();
}
}
Avatar billede erikjacobsen Ekspert
24. september 2013 - 16:52 #1
Nu gætter jeg lidt - men din myFunction er tom. Så der sker nok ingenting, li'som du oplever det.

Mon ikke du i din funktion skal kalde den funktion, der gør arbejdet, dvs.

  function myFunction() {
    cleanUp();
  }
Avatar billede omdal Nybegynder
25. september 2013 - 08:35 #2
hmm ..

Jeg forsøgte at indsætte din lille rettelse ... derudover forsøgte jeg at vælge de forskellige functions og kører dem alle sammen (undtagen archive)

https://docs.google.com/file/d/0B-lUgEVqZBx2eUpRVGZ0Q2JiNDA/edit?usp=sharing

desværre stadig ingen opdatering
Avatar billede omdal Nybegynder
25. september 2013 - 08:38 #3
hmm rettede lige starten så den kun hedder :

function cleanUp() {
var delayDays = 180 // Enter # of days before messages are moved to trash

var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays);

var label = GmailApp.getUserLabelByName("delete me");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
  if (threads[i].getLastMessageDate()<maxDate)
  {
    threads[i].moveToTrash();
  }
}
}

function archiveInbox() {
// Every thread in your Inbox that is read, older than two days, and not labeled "delete me".
var threads = GmailApp.search('label:inbox is:read older_than:2d -label:"delete me"');
  for (var i = 0; i < threads.length; i++) {
    threads[i].moveToArchive();
}
}

_______________________________________________


I transcript loggen ser den nu sådan her ud ..

[13-09-25 08:36:23:074 CEST] Starting execution
[13-09-25 08:36:23:372 CEST] GmailApp.getUserLabelByName([delete me]) [0.286 seconds]
[13-09-25 08:36:25:689 CEST] GmailLabel.getThreads() [2.315 seconds]
[13-09-25 08:36:25:689 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:689 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:689 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:689 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:689 CEST] GmailThread.getLastMessageDate() [0 seconds]
..... en masse flere her :)

[13-09-25 08:36:25:724 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:725 CEST] GmailThread.getLastMessageDate() [0 seconds]
[13-09-25 08:36:25:726 CEST] Execution succeeded [2.64 seconds total runtime]
Avatar billede omdal Nybegynder
25. september 2013 - 09:38 #4
fejlen fundet - det lader til mit problem er timeout .. der var ca. 116.000 mails .. det var den sq ikke så glad for ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester