我非常接近完成我的 Google Apps 脚本项目,该项目正在解析一个简单的 2 行电子邮件并将附件链接(保存到 Google 云端硬盘的附件)添加到 Google 表格。
我一直坚持将电子邮件附件保存到 Google 云端硬盘。被注释掉的代码是不能正常工作的块。我举了一个例子:在 Google Drive 上保存 Gmail 附件——但它似乎对我不起作用。
附上我的完整代码。
function parseEmailMessages() {
var threads = GmailApp.search('label:test',0,100);
var sheet = SpreadsheetApp.openById('<<SHEET ID>>');
var folder = DriveApp.getFolderById('<<FOLDER ID>>');
var testLabel = GmailApp.getUserLabelByName('test');
var doneLabel = GmailApp.getUserLabelByName('finished');
for (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages();
for (var j in message) {
var content = message[j].getPlainBody();
/*
var attachments = threads[j].getAttachments();
for (var k in attachments) {
var attachment = attachments[k];
var isDefinedType = checkIfDefinedType_(attachment);
if (!isDefinedType) continue;
var attachmentBlob = attachment.copyBlob();
var file = DriveApp.createFile(attachmentBlob);
}
*/
}
var [name, date] = content.split("\n");
function latestFile() {
var gDriveFolder = DriveApp.getFolderById('<<FOLDER ID>>');
var gDriveFile = gDriveFolder.getFiles();
var lastFileId = gDriveFile.next().getId();
return lastFileId.toString();
}
var urlStart = 'https://drive.google.com/a/<<DOMAIN>>/file/d/';
var urlString = latestFile();
var urlEnd = '/view?usp=drivesdk';
var pic = urlStart + urlString + urlEnd;
sheet.appendRow([name,date,pic]);
threads[i].removeLabel(testLabel);
threads[i].addLabel(doneLabel);
}
}
我收到的错误是:“TypeError:在对象 GmailThread 中找不到函数 getAttachments。”
确实,文档中的 getAttachments 似乎不是 GmailThread 的一部分,但我目前不确定如何实现我的目标。
哆啦的时光机
喵喔喔
随时随地看视频慕课网APP
相关分类