在以HTML格式发送电子邮件的脚本中,我添加了存储在公共共享文件夹中的图像。 我得到的blob使用UrlFetchApp.fetch(photoLink)
,但图像不一定是正确的大小,所以在HTML代码中我使用宽度和高度属性(现在与固定值,请参阅下面的代码),但我希望它会自动调整大小与正确的比例。如何获得我用UrlFetchApp.fetch(photoLink)获得的jpeg图像的大小(以像素为单位)?
为了实现这一点,我需要知道如何获得图像的原始大小(高度和宽度),但我只是不知道如何得到它没有插入图像在中间文件(这将工作,但我发现这种方法有点奇怪和不必要的复杂...此外,我不觉得每次更改图像文件时都会出现无用的文档)。
下面是创建电子邮件的代码的相关部分:
function sendMail(test,rowData,genTitle,day,title,stHour,endHour){
var photoLink = sh.getRange('H1').getValue();
var image = UrlFetchApp.fetch(photoLink);
//************* find the pixel size of the image to get its ratio
var msgTemplate = '<A HREF="http://www.domain.be/reservations-global/"><IMG SRC="'+photoLink+'" BORDER=0 ALT="logo" HEIGHT=200 WIDTH=300></A><BR><BR>'+
'Résumé de vos réservations au nom de <NOM><BR><BR><BR><table style="background-color:lightblue;border-collapse:collapse;" border = 1 cellpadding = 5><th></th><th><TABLEHEADER></th><EVENTS></table><BR><CONCLUSION><BR>Cordialement,<BR><BR>';
var mailTitle = 'Confirmation de réservation - '+getTextFromHtml(genTitle);
var descr = '';
for(var d = 0;d<day.length;++d){
Logger.log(Number(rowData[(d+5)]));
var content = '<tr bgcolor="#ffffbb" width="100%"><td><NUMBER> </td><td > <DESCRIPTION></td></tr>'
if(Number(rowData[(d+5)])>1){var pl = ' places'}else{var pl = ' place'};
content = content.replace('<NUMBER>',rowData[(d+5)]+pl);
content = content.replace('<DESCRIPTION>',title[d]+' de '+stHour[d]+' heures à '+endHour[d]+' heures');
if(Number(rowData[(d+5)])>0){
descr += content;
}
}
msgTemplate = msgTemplate.replace('<NOM>',rowData[1]).replace('<EVENTS>',descr).replace('<TABLEHEADER>',genTitle);
var textVersion = getTextFromHtml(msgTemplate.replace(/<br>/gi,'\n').replace(/<td>/gi,'\n'));
// Logger.log(textVersion)
if(test){
MailApp.sendEmail(Session.getEffectiveUser().getEmail(),mailTitle, textVersion,{'htmlBody':msgTemplate,"replyTo" : retour});
}
else
{
MailApp.sendEmail(rowData[2],mailTitle, textVersion,{'htmlBody':msgTemplate,"replyTo" : retour});
}
}
嗨阿伦,谢谢。我的音量大概是一个月一到两次;-)所以我很乐意使用它。也就是说,你的代码飞得很高,我必须试着去理解它,并希望理解它是如何工作的。如果我失败了,我会回到你身边(如果你不介意的话)。 Cheers,Serge –
App Engine部分执行一些简单的图像高度/宽度计算,并将值作为JSON返回,以便Apps脚本可以使用它。祝你好运! –
嗨阿伦,小问题:我刚刚注意到,这个代码不适用于名称中有空格的图像......,这是正常的吗?不是一个大问题,因为我当然可以重命名它,但我很好奇:-)例如:https://dl.dropboxusercontent.com/u/211279/photo%20sylvette.jpg –