Я создал Google Script для отправки нескольких графиков в виде изображений. При использовании MailApp
это работает, а изображения находятся в теле письма. При использовании GmailApp
изображения представляют собой вложения, а не в теле письма. Я хочу использовать GmailApp
, потому что я могу использовать псевдоним, и потому что я выяснил, как заставить электронное письмо отправлять списку людей. Как внести изменения, чтобы функция GmailApp
отправляла электронное письмо с диаграммами, содержащимися в теле? Вот ссылка на образец электронной таблицы , а вот код :
function SRpt2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sstotalsheets = ss.getNumSheets();
var clientCode = ss.getSheetByName("Info").getRange("C4").getDisplayValue();
var progmgr = ss.getSheetByName("Info").getRange("D11").getDisplayValue();
var sheetcount = 0;
var token = ScriptApp.getOAuthToken();
var sheets = ss.getSheets();
var blobs = [];
var subject = "Daily " + clientCode +" Digest";
var body = "Your daily update";
var recips = progmgr + ", neill@momentum-behavioral.com";
var emailImages={};
var emailBody="Charts<br>";
for (var i = 5; i < sheets.length ; i++ ) {
var sheet = sheets[i];
var charts = sheet.getCharts();
if(charts.length > 0) {
var template = HtmlService.createTemplateFromFile("reportTemplate");
template.date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM-dd-yyyy");
blobs[i] = charts[0].getBlob().getAs('image/png').setName("areaBlob");
emailBody= emailBody + "<img src='cid:chart"+i+"'><br>";
emailImages["chart"+i]= blobs[i];
}
}
var me = Session.getActiveUser().getEmail();
var aliases = GmailApp.getAliases();
if (aliases.length > 0) {
GmailApp.sendEmail(recips, subject, emailBody, {'from': aliases[0],inlineImages:emailImages});
}
MailApp.sendEmail({
to: recips,
subject: subject,
htmlBody: emailBody,
inlineImages:emailImages});
}
А вот HTML-код, на который он ссылается:
<html>
<h1>Daily Update <?= date ?></h1>
<p>
<img src="cid:chart" />
</p>
</html>
В неправильно отформатированном теле письма просто указан фактический исходный HTML-код (я не могу понять, как вставить его в стековый поток без фактического обращения с ним как с HTML).