Google应用程序脚本:从js文件发送邮件inlineImage

时间:2018-10-01 09:34:00

标签: javascript google-apps-script

我使用 google.script.run 在Google应用程序脚本中使用 MailApp API ,并且传递这样的邮件对象:

google.script.run.sendMail(mail);

邮件对象的结构如下:

  var mail = {
    to:"",
    cc:"",
    subject:"",
    htmlBody:"",
    inlineImages: inlineImages
  }

inlineImages 是一个Javascript对象,可将{strong>字符串映射到google ressources

中的图像数据(BlobSource)

但是随后我在 inlineImages 中传递了 File 对象,我得到由于非法值而失败

编辑:

我得到 inlineImages 像这样:

var inlineImages

function createImages(event) {
    var file = event.target.files[0];
    var key = "image"+Object.keys(inlineImages).length;

    inlineImages[key] = file;
}

我也尝试获取Image对象:

function createImages(event) {
    var file = event.target.files[0];
    var key = "image"+Object.keys(inlineImages).length;

    var reader = new FileReader();
    reader.onload = function(e) {
        var img = new Image();
        img.src = e.target.result;

        inlineImages[key] = img;
    }

    reader.readAsDataURL(file);
}

1 个答案:

答案 0 :(得分:0)

let a; let b = 22; let c = null; let d = { 'a': 22, 'b': [4,5,6] }; console.log(a); // undefined console.log(a.b); // TypeError: Cannot read property 'b' of undefined console.log(b); // 22 console.log(b.c); // undefined console.log(c); // null console.log(d.a); // 22 console.log(d.b); // [4,5,6] console.log(e); // ReferenceError: e is not defined 不是合法值。

  

法律参数和返回值是JavaScript原语,例如a
  +数字,
  +布尔值,
  +字符串,或
  + null,以及
  +由原语,对象和数组组成的JavaScript对象和数组。
  +页面中的表单元素作为参数也是合法的,但它必须是函数的唯一参数,并且作为返回值是不合法的

要通过文件从客户端到服务器通过上述限制,获取文件的唯一方法是将fileObject转换为上述类型之一。我将使用表单:

  

如果您使用表单元素作为参数调用服务器函数,则表单将成为单个对象,其中字段名作为键,而字段值作为值。这些值都将转换为字符串,但文件输入字段的内容除外,这些内容成为 Blob 对象。