Javascript 分别从每个电子邮件id将附件保存到google drive文件夹
我正在尝试创建一个脚本,可以将电子邮件id不时发送的所有附件保存到特定的驱动器文件夹中 我是新的气体和发现这个脚本,但它似乎不符合我的要求。有人能帮忙吗Javascript 分别从每个电子邮件id将附件保存到google drive文件夹,javascript,google-apps-script,Javascript,Google Apps Script,我正在尝试创建一个脚本,可以将电子邮件id不时发送的所有附件保存到特定的驱动器文件夹中 我是新的气体和发现这个脚本,但它似乎不符合我的要求。有人能帮忙吗 function GmailToDrive() { var query = ''; query = 'in:inbox from:noreply@agyo.io has:nouserlabels '; var threads = GmailApp.search(query); var label = getGmailLabel_(l
function GmailToDrive() {
var query = '';
query = 'in:inbox from:noreply@agyo.io has:nouserlabels ';
var threads = GmailApp.search(query);
var label = getGmailLabel_(labelName);
var parentFolder;
if (threads.length > 0) {
parentFolder = getFolder_(folderName);
}
var root = DriveApp.getRootFolder();
for (var i in threads) {
var mesgs = threads[i].getMessages();
for (var j in mesgs) {
//get attachments
var attachments = mesgs[j].getAttachments();
var message_body = mesgs[j].getBody();
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);
file.setName(renameFile_(attachment, message_body))
parentFolder.addFile(file);
root.removeFile(file);
}
}
threads[i].addLabel(label);
}
}
我无法理解getFolder_u2;(folderName)和checkIfDefinedType_2;(附件)的用法
我只需要这个:
当新电子邮件向我发送附件时,创建一个新文件夹并将其保存到该文件夹…问题:
您提供的代码使用了几个未定义的函数(getgmailabel
,getFolder
,checkIfDefinedType
,renameFile
)。它们的定义应该在您第一次发现此脚本的地方
目标和解决办法:
在任何情况下,根据您提到的目标,实际上不需要这些未定义的函数:
将电子邮件id不时发送的所有附件保存到特定的驱动器文件夹
- 无需获取标签(
),因为您只想从特定日期之间的邮件中检索附件,而不想向任何邮件添加任何标签getgmailabel
- 如果要检索特定日期之间的线程,应使用搜索运算符
和before:
(请参阅)after:
- 您可以通过执行以下操作来检索所需文件夹(如果您不知道如何获取特定文件夹的文件夹
,则此id
是文件夹URL的一部分,如图所示。如果您想查找名称,只需使用和循环查找所需文件夹即可id
- 没有理由使用
,因为您可以通过将文件直接创建到所需的文件夹中getRootFolder
- 不确定为什么要使用
,但这不是在驱动器中创建相应文件所必需的checkIfDefinedType\
- 默认情况下,创建的文件将与附件具有相同的名称,但在任何情况下,您都可以使用
对其进行自定义file.setName(attachment.getName()+“任何要添加的自定义字符串”);
我的猜测是,
checkIfDefinedType_uu和getFolder_uu
是原始作者定义的唯一函数。您需要返回并获取它们或自己重写它们。您好!对您有用吗?请参阅。
function GmailToDrive() {
const query = 'from:noreply@agyo.io before:2021-05-04 after:2021-05-01'; // Set sender and dates you prefer
const threads = GmailApp.search(query);
const folder = DriveApp.getFolderById("YOUR_FOLDER_ID");
threads.forEach(thread => {
const mesgs = thread.getMessages();
mesgs.forEach(message => {
const attachments = message.getAttachments();
attachments.forEach(attachment => {
const attachmentBlob = attachment.copyBlob();
const file = folder.createFile(attachmentBlob);
file.setName(attachment.getName() + " CREATED IN DRIVE");
});
});
});
}