Javascript 应用程序脚本,用于将文件夹中存在的所有文件附加到电子邮件
下面是我目前使用代码的位置。附加一个文件就可以了。它仅附加文件夹中的最后一个文件。我希望它附加所有文件Javascript 应用程序脚本,用于将文件夹中存在的所有文件附加到电子邮件,javascript,google-apps-script,Javascript,Google Apps Script,下面是我目前使用代码的位置。附加一个文件就可以了。它仅附加文件夹中的最后一个文件。我希望它附加所有文件 function email() { // Get attachments folder var attachementFolderId = values[cell][11]; Logger.log("Attachement Folder ID: " + attachementFolderId) var getAttachementFolder = Drive
function email() {
// Get attachments folder
var attachementFolderId = values[cell][11];
Logger.log("Attachement Folder ID: " + attachementFolderId)
var getAttachementFolder = DriveApp.getFolderById(attachementFolderId).getFiles();
// Get all files from the folder
var files = DriveApp.getFolderById(attachementFolderId).getFiles();
while (files.hasNext()) {
var file = files.next();
var attachements = file.getAs(MimeType.PDF);
Logger.log(attachements)
}
MailApp.sendEmail({
to: recipient,
subject: address,
htmlBody: "Hello <br><br>" +
"Address: " + address + "<br><br>" +
"Description: " + description,
attachments: [attachements]
})
}
我想出来了。对于有经验的程序员来说,这可能是一个简单的错误……我所做的只是创建一个数组,每次它找到一个文件并将其作为一个blob,将其添加到数组中
attachmentsArray[attachmentsArray.length] = attachmentFiles;
是我在下面添加的代码吗
var attachmentFiles = file.getAs(MimeType.PDF);
而不是
attachments: [attachements]
我把这个
attachments: attachmentsArray
你的解决方案不对。尝试以下方法:
var attachements = [];
while (files.hasNext()) {
var file = files.next();
attachements.push(file.getAs(MimeType.PDF));// the push method add elements to the attachements array
Logger.log(attachements)
}
最后:
MailApp.sendEmail({
to: recipient,
subject: address,
htmlBody: "Hello <br><br>" +
"Address: " + address + "<br><br>" +
"Description: " + description,
attachments: attachements
})
好的,我会尝试你的建议,因为这是我尝试过的一种方法,但没有成功。我下面的解决方案是可行的,那你为什么说它不对呢?我用了你的方法,它是可行的。我同意你的方法是更好的选择,但似乎我的方法也有效。你是对的,你的代码没有错,我可能误读了它,因为它不是一种非常传统的填充数组的方法:-谢谢你接受这个答案。谢谢,我也将我的标记为已回答:是的,我使用的是直接添加到数组的基本方法。这很有效,但是你的方式更好