我目前有一个脚本来创建电子邮件草稿,并在其中附加文件。当前,该脚本不适用于多个文件附件,如果没有附件,该脚本也将不起作用。
有关如何获得[1]和[2]的任何提示[下]
已更新以获取更多信息:
主要目的是在Col [3]中添加多个文件名,并使用Col [3]中提供的文件名将文件附加到草稿中。示例:如果我在Col [3]中输入以下内容:“ test.pdf,test2.pdf” 它将为该特定草案附加文件“ test.pdf”和“ test2.pdf”。 目前,该脚本确实将单个文件附加到草稿,但是如果我输入多个用逗号分隔的文件名,则根本不会创建草稿。
我已附上运行脚本时电子表格的外观的屏幕截图(当前无法嵌入图片):
当我使用屏幕快照中的信息运行脚本时,第二行根本不会创建草稿,第三行会创建带有附件的草稿,而第四行根本不会创建草稿。
是否可以创建草稿并使用逗号分隔的文件名附加多个文件,并且在Col [3]中的某些单元格为空时还可以创建草稿?
TLDR:
如何将多个文件附加到单个草稿
如何创建不带任何附件的草稿
function SaveDrafts() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var rows = 1000;
var dataRange = sheet.getRange(startRow, 1, rows, 5);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0];
var subject = row[1];
var message = row[2];
var pdfName = row[3];
var cc = row[4];
var list = DriveApp.getFilesByName(pdfName);
if (list.hasNext()) {
var File = list.next();
GmailApp.createDraft(emailAddress, subject, message, {
cc: cc,
attachments: [File]
});
}
}
}
答案 0 :(得分:0)
更新:
首先,我对split()
单元格的值执行了pdfName
,因此我可以一次搜索并添加一个文件。
草稿创建仅在有文件的情况下运行,因为它位于list
if语句中,没有文件表示它不会运行。
我从中退出并创建了an interator for list
和一个可以分配给createDraft()
函数的文件数组。如果files
返回多个文件,则迭代器允许将多个文件添加到DriveApp.getFilesByName(pdfName)
数组中。
function SaveDrafts() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var rows = 1000;
var dataRange = sheet.getRange(startRow, 1, rows, 5);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0];
var subject = row[1];
var message = row[2];
var pdfName = row[3].split(','); //split the values taken from cell into array
var cc = row[4];
var files = []; //initialize files as empty array.
for(var j in pdfName){ //run through cell values and perform search
var results = DriveApp.getFilesByName(pdfName[j]); //Perform the search,results is a FileIterator
while(results.hasNext()) { //Interate through files found and add to attachment results
files.push(results.next()); //Add files to array
}
}
GmailApp.createDraft(emailAddress, subject, message, {
cc: cc,
attachments: files //the attachments option takes our files array
});
}
}