1
我尝试运行下面的代码。该代码将gmail附件移至定义的文件夹。 它返回错误“Object FolderIterator找不到函数getId”。 代码停止在var folderID = folder.getId()
文件夹由DriveApp
定义 为什么不能Object FolderIterator查找函数getId?为什么不能Object FolderIterator找到函数getId?
function sendtoDrive() {
var ss1 = SpreadsheetApp.openById(SpreadSheetID);
var ash = ss1.getSheets()[0];
var dr = ash.getDataRange();
var lr = dr.getLastRow();
var dvs = dr.getValues();
var n=0;
var properties = PropertiesService.getScriptProperties();
for(n=1;n<lr;n++){
try {
var sdr = dvs[n][0];
try {
var folder = DriveApp.getFoldersByName(sdr);
}
catch (e) {
try {
var folder = DriveApp.createFolder(sdr);
}
catch (e) {
Logger.log(e.message);
throw e;
}
}
var mailsAlreadyProcessed = properties.getProperty(sdr);
if(mailsAlreadyProcessed == undefined){
var folderID=folder.getId()
properties.setProperty(sdr, folderID + ',');
var mailsAlreadyProcessed = properties.getProperty(sdr);
}
var label = GmailApp.getUserLabelByName(sdr);
var labelDone = GmailApp.getUserLabelByName('Done');
var threads = label.getThreads();
if (threads.length > 0) {
var folderId = mailsAlreadyProcessed.split(',')[0];
var folder = DriveApp.getFolderById(folderId);
for (i in threads) {
if (threads[i].getLabels() != 'Done') {
var messages = threads[i].getMessages();
for (j in messages) {
var attachments = messages[j].getAttachments();
if (attachments.length > 0 && mailsAlreadyProcessed.indexOf(messages[j].getId()) == -1) {
mailsAlreadyProcessed += messages[j].getId();
for (k in attachments) {
var file = attachments[k];
folder.createFile(file);
Utilities.sleep(100);
}
ScriptProperties.setProperty('mailsAlreadyProcessed', mailsAlreadyProcessed);
}
}
labelDone.addToThread(threads[i]);
label.removeFromThread(threads[i]);
Utilities.sleep(100);
}
}
}
}
catch (e) {
Logger.log(e.message);
throw e;
}
}
}