我正在尝试附加已创建的电子表格并通过电子邮件发送。我发现,如果我尝试
opts.fileIds.forEach(function(fileId) {
console.log('fileId ' + fileId);
var file = DriveApp.getFileById(fileId);
var blob = file.getAs(file.getMimeType());
console.log('blob length' + blob.getDataAsString().length);
console.log('file retrieved size ' + file.getSize());
console.log('file mime type ' + file.getMimeType());
attachmentList.push(blob);
});
我没有得到blob对象,file.getAs返回null但是,file.getBlob工作正常,但把它变成了pdf,这不是我想要的。有没有办法附上这个电子表格?
答案 0 :(得分:0)
MailApp的attachments
选项需要一个BlobSource objects数组。如果您查看该链接,可以看到只需附加Google文件而无需额外的工作。这包括电子表格,文档,PDF等。
尝试传回对文件的引用!
opts.fileIds.forEach(function(fileId) {
console.log('fileId ' + fileId);
var file = DriveApp.getFileById(fileId);
//logging
attachmentList.push(file);
});
编辑:MailApp出现此行为的原因,我认为是因为MIMEType和getAs()
ContentType不同。请查看Google Scripts网站上有关https://developers.google.com/apps-script/reference/base/blob#getAs(String)的内容:
对于大多数blob,'application / pdf'是唯一有效的选项。
有人可以证实吗?