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