javascript - Google App 脚本:附加多个图像时出错(在对象 DriveApp 上获取方法或属性 getFileById 时出现意外错误)
问题描述
我正在编写一个自动脚本来从我的 Google 表格发送邮件,并且我想附加多个图像。只有一张图片一切都很好,但是当我想附加两个或更多时,它会给我这个错误消息:
异常:获取对象 DriveApp 上的方法或属性 getFileById 时出现意外错误。
这是我现在的代码:
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 1; // First row of data to process
var numRows = 3; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 5);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var image = DriveApp.getFileById(row[2]).getBlob();
var image2 = DriveApp.getFileById(row[3]).getBlob();
var subject = 'TAYDO 2021 Certificate';
}
MailApp.sendEmail({
to:emailAddress,
subject:subject,
body:message,
attachments: [image.next(),image2]
});
}
App 脚本具有运行此脚本所需的所有权限,并且工作表、驱动器和所有内容都在同一个 Google Acc 下。任何人都可以帮忙吗?提前致谢!
解决方案
这对我有用:
function attachimages() {
let fldr = DriveApp.getFolderById(gobj.globals.imagesfolderid);
let files = fldr.getFiles();
let imgA = [];
while(files.hasNext()) {
let file = files.next();
if(file.getName().slice(0,3) == 'die') {
imgA.push(file.getBlob().getAs('image/jpeg'))
}
}
MailApp.sendEmail({to:'jimesteban@jimesteban.com',subject:'Test Images Attachment',body: 'See Attached Images', attachments:imgA});
}
我的图像恰好被命名为 die1.jpg、die2.jpg .... 等等,它们是骰子面的图像。
这也对我有用:
function sendEmails() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet0');
const rg = sh.getRange(2, 1, 3, 4);
const vs = rg.getValues();
vs.forEach((r, i) => {
let emailAddress = r[0];
let message = r[1];
let image1 = DriveApp.getFileById(r[2].toString()).getBlob();
let image2 = DriveApp.getFileById(r[3].toString()).getBlob();
let subject = 'Test Attach Images';
MailApp.sendEmail({ to: emailAddress, subject: subject, body: message, attachments: [image1, image2] });
});
}
表0:
电子邮件 | 信息 | 图片1 | 图片2 |
---|---|---|---|
已编辑 | 消息1 | 已编辑 | 已编辑 |
已编辑 | 消息2 | 已编辑 | 已编辑 |
已编辑 | 消息3 | 已编辑 | 已编辑 |
推荐阅读
- create-react-app - 'navigationBar' 已声明,但其值从未被读取。ts(6133)
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 65535 中的字节 0xd9:数据意外结束
- reactjs - 在 React 中使用 memoized 回调,同时使用 .map 创建多个组件
- c# - 我如何跟踪在 Vuforia 引擎上运行的为 android 构建的统一应用程序被用户打开了多少次
- bash - 在shell中找到那些没有下划线但没有匹配文件的文件?
- amazon-cloudwatch - Cloudwatch 洞察查询按字段分组
- android - 如何在我的 android App 中添加我的自定义 cordova 插件?
- php - 如何在 WebTestCase 上设置多个选择器
- python - 如何修复在python中发送的多输出回归中的值错误
- r - 结合 SparkR 和 sparklyr 包