Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何通过MailApp永久删除脚本中的邮件?_Google Apps Script - Fatal编程技术网

Google apps script 如何通过MailApp永久删除脚本中的邮件?

Google apps script 如何通过MailApp永久删除脚本中的邮件?,google-apps-script,Google Apps Script,我在这个论坛上找到了下面的脚本,并且工作非常顺利(获取文件,将文件保存在正确的文件夹中,等等)。即我收到一个txt。每天早上用我想要导入并保存到我的Gdrive(以后在其他脚本中使用)的相对数量归档。该文件以我使用Utilities.formatDate函数获取的todays日期命名 不幸的是,每次我运行脚本时,我都会从以前的几天中获取所有文件,这会在几天内将我的文件夹填满。因此,我的问题是,是否可以删除脚本后,我的谷歌搜索查询将无法找到之前的电子邮件第二天的电子邮件 感谢您对这个难题的任何帮助

我在这个论坛上找到了下面的脚本,并且工作非常顺利(获取文件,将文件保存在正确的文件夹中,等等)。即我收到一个txt。每天早上用我想要导入并保存到我的Gdrive(以后在其他脚本中使用)的相对数量归档。该文件以我使用Utilities.formatDate函数获取的todays日期命名

不幸的是,每次我运行脚本时,我都会从以前的几天中获取所有文件,这会在几天内将我的文件夹填满。因此,我的问题是,是否可以删除脚本后,我的谷歌搜索查询将无法找到之前的电子邮件第二天的电子邮件

感谢您对这个难题的任何帮助

注:电子邮件来自同一个收件人,主题相同“库存”,但附件名为“日期”\u Todays date

    // GLOBALS
//Array of file extension which you would like to extract to Drive
var fileTypesToExtract = ['txt'];
//Name of the folder in google drive i which files will be put
var folderName = 'GmailToDrive';
//Name of the label which will be applied after processing the mail message
var labelName = 'GmailToDrive';



function GmailToDrive(){
  //build query to search emails
  var query = 'filename:stock_'+Utilities.formatDate(new Date(), "GMT", "yyyyMMdd").toString()+'.gpg.txt';
  //filename:jpg OR filename:tif OR filename:gif OR fileName:png OR filename:bmp OR filename:svg'; //'after:'+formattedDate+
  for(var i in fileTypesToExtract){
 query += (query == '' ?('filename:'+fileTypesToExtract[i]) : (' OR filename:'+fileTypesToExtract[i]));
  }
  query = 'in:inbox has:nouserlabels is:unread' + query;
  var threads = GmailApp.search(query);
  var label = getGmailLabel_(labelName);
  var Folder = DriveApp.getFolderById("XXX");
  for(var i in threads){
 var mesgs = threads[i].getMessages();
 for(var j in mesgs){
   //get attachments
   var attachments = mesgs[j].getAttachments();
   for(var k in attachments){
     var attachment = attachments[k];
     var isImageType = checkIfImage_(attachment);
     if(!isImageType) continue;
     var attachmentBlob = attachment.copyBlob();
     var file = DriveApp.createFile(attachmentBlob);
     Folder.addFile(file);
   }
 }
 threads[i].addLabel(label);

  }
};


//This function will get the parent folder in Google drive
function getFolder_(folderName){
  var folder;
  try {folder = DriveApp.getFolder(folderName)}
  catch(e){ folder = DriveApp.createFolder(folderName);}
  return folder;
}

//getDate n days back
// n must be integer
function getDateNDaysBack_(n){
  n = parseInt(n);
  var today = new Date();
  var dateNDaysBack = new Date(today.valueOf() - n*24*60*60*1000);
  return dateNDaysBack;
}

function getGmailLabel_(name){
  var label = GmailApp.getUserLabelByName(name);
  if(label == null){
 label = GmailApp.createLabel(name);
  }
  return label;
}

//this function will check for filextension type.
// and return boolean
function checkIfImage_(attachment){
  var fileName = attachment.getName();
  var temp = fileName.split('.');
  var fileExtension = temp[temp.length-1].toLowerCase();
  if(fileTypesToExtract.indexOf(fileExtension) != -1) return true;
  else return false;
}

向我们展示您的修改尝试和具体的编码问题。否则,这个问题只是要求基于找到的脚本(不是你的)进行免费编码,这不太可能帮助未来的读者。我已经修改了脚本,并将其更新到当前框架(交换了不再使用的DocList脚本,并使用GmailApp/DriveApp函数对其进行了修改),这对于试图完成类似任务的人来说应该有一定的价值,因为我发现脚本不再兼容。查询也是自定义的,因为它根据当前日期搜索项目。它确实对四年前的原稿作了重大修改。除此之外,脚本(以及我)的唯一问题是,基于google搜索查询,它仍然会找到标记的项目,而不管是否指示“nouser label”。与其删除,不如添加一个标签,而查询中的仅排除该标签。将`-label:finished`添加到querysee:似乎您需要一种不同的方法来排除这些