谷歌应用程序脚本:创建动态html体

时间:2013-11-11 08:17:16

标签: google-apps-script

我实际上遇到了Google Apps脚本问题,我希望有人可以帮助我。

我正在制作一个脚本,该脚本每周发送一封包含pdf文件和几张图片的信息(图片数量不固定)。此外,图像应显示在电子邮件中(使用htmlBody选项)。

现在我的问题如下:我想用电子邮件发送的图片数量不固定,所以此刻我必须硬编码htmlBody,这有点难看。

htmlBody = "<img src='cid:diagramm1'/><img src='cid:diagramm2'/><img src='cid:diagramm3'/>

     GmailApp.sendEmail(test@mailinator.com,
                        subject ,
                        recipient[0],message,
                                {htmlBody: htmlBody,
                                 inlineImages:{
                                       diagram1:attach[1], 
                                       diagram2:attach[2],
                                       diagram3:attach[3],
                                 },
                                 attachments:attach[0]});
  });

}

//not used atm
function buildHtmlBody(){

  for(i=0;i<DIAGRAM_NAMES.length;i++){

    htmlBody += "<img src='cid:" + DIAGRAM_NAMES[i] + "'/>";

  }

我认为问题很容易发现。在Codeline#7中,我手动列出了所有内嵌图像diagram1-3。我尝试使用变量,但它不起作用。

实际上我有一个数组,我存储有关每个图表的信息(所以我知道我有多少个)。

是否有可能使这更好?我想使代码可调整为可变数量的图像。

1 个答案:

答案 0 :(得分:2)

试试这个

htmlBody = "<img src='cid:diagramm1'/><img src='cid:diagramm2'/><img src='cid:diagramm3'/>

     var inlineImages  = {}; 
     for (var i = 1; i <= DIAGRAM_NAMES.length ; i++){
        inlineImages["diagram" + i.toString()] = attach[i]; 
     }
     GmailApp.sendEmail(test@mailinator.com,
                        subject ,
                        recipient[0],message,
                                {htmlBody: htmlBody,
                                 inlineImages:inlineImages,
                                 attachments:attach[0]});
  });

}

//not used atm
function buildHtmlBody(){

  for(i=0;i<DIAGRAM_NAMES.length;i++){

    htmlBody += "<img src='cid:" + DIAGRAM_NAMES[i] + "'/>";

 }
相关问题