このサイトを参考にして、Gmailのあるラベルに振り分けされたメールをevernoteのあるノートブックに転送するスクリプトを実行したところ、Gmail側のメールがEvernoteに転送された時点ですべて削除となってしまいました。
本当は新着のメールがラベルに振り分けられたタイミングでEvernoteへの転送のみ行い、Gmail側で削除はさせたくないのですが、可能でしょうか?
なんとなくfunction deleteTriggers_()で削除されているように思うのですが、ここを削除すると永遠に同じものがevernoteに転送されそうで試せていません。
ご教授いただけませんでしょうか?
宜しくお願い致します。
GoogleApps
1function START() { 2 3 deleteTriggers_(); 4 5 ScriptApp.newTrigger("evernote").timeBased().everyMinutes(10).create(); 6 7 ScriptApp.newTrigger("evernote").timeBased().after(1000*60).create(); 8 9 Browser.msgBox("The program is now running in the background. You can close the Google Sheet."); 10 11} 12 13function STOP() { 14 15 deleteTriggers_(); 16 17 Browser.msgBox("The program has stopped. For help, send an email at amit@labnol.org or tweet @labnol"); 18 19} 20 21function getGmailLabel_(name) { 22 23 var label = GmailApp.getUserLabelByName(name); 24 25 if (!label) { 26 label = GmailApp.createLabel(name); 27 } 28 29 return label; 30 31} 32 33function evernote() { 34 35 try { 36 37 if (emailQuota_() < 1) return; 38 39 var sheet = SpreadsheetApp.getActiveSpreadsheet(); 40 41 var params = sheet.getRange("D3:D7").getValues(); 42 43 var label = getGmailLabel_(params[1][0].trim().replace(/\s+/g, "-")); 44 45 var threads = label.getThreads(); 46 47 for (var t in threads) { 48 49 var messages = threads[t].getMessages(); 50 51 if (emailQuota_() > 1) { 52 53 var message = messages[messages.length-1]; 54 55 var subject = [message.getSubject(), params[2][0], params[3][0]].join(" "); 56 57 try { 58 message.forward(params[0][0], {subject: subject}); 59 } catch (f) { 60 Logger.log(f.toString()); 61 } 62 63 if (params[2][0].match(/y/i)) { 64 threads[t].moveToTrash(); 65 } else { 66 threads[t].removeLabel(label); 67 } 68 } 69 70 } 71 72 73 } catch (e) { 74 Logger.log("ERROR: " + e.toString()); 75 } 76 77} 78 79 80function deleteTriggers_() { 81 82 var triggers = ScriptApp.getProjectTriggers(); 83 84 for(var i in triggers) { 85 ScriptApp.deleteTrigger(triggers[i]); 86 } 87 88} 89 90 91function emailQuota_() { 92 return MailApp.getRemainingDailyQuota(); 93}
回答1件
あなたの回答
tips
プレビュー