例如,我使用发送电子邮件,电子邮件地址、电子邮件内容来自Google (sheet1),
只是一个代码示例(如果Google驱动器中的页脚图像)
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell();
var row = cell.getRow();
var column = cell.getColumn();
var lr = ss.getLastRow();
for (var i = 2;i<=lr;i++){
var assignmentName = sheet.getRange(i, 2).getValue();
var emailAddress = sheet.getRange(i, 1).getValue();
var image1 = DriveApp.getFileById("fileID").getBlob();
var message = "Hi Mr/Mrs,<br /><br />Bellow is your info... <br><img src='cid:Footerimage'> <br>";
GmailApp.sendEmail(emailAddress,"A Test Email", message,
{
htmlBody: message,
inlineImages:
{
Footerimage: image1
}
}
);
}
我的问题是,如果页脚图像来自同一个google (Sheet2)中的单元格,那么如何在我的google脚本中引用这个页脚图像。
发布于 2022-01-20 02:40:28
我相信你的目标如下。
问题和解决办法:
不幸的是,在当前阶段,还没有从嵌入到单元格中的图像中直接检索图像数据的方法。因此,在这种情况下,作为一种解决办法,我想使用我已经回答了这里的方法来提出一个示例脚本。
关于显示脚本,当在一个循环中使用getValue
时,过程成本就会变得很高。当您使用一个映像时,不需要在循环中包含var image1 = DriveApp.getFileById("fileID").getBlob();
。
用法:
在这个解决方案中,为了从嵌入到单元格中的图像检索图像数据,使用了Google脚本库。
1.安装Google脚本库。
请安装Google脚本库。关于安装库的方法,您可以在这里上看到它。
2.样本脚本。
function myFunction() {
// Retrieve image data from the image embeded into a cell.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const res = DocsServiceApp.openBySpreadsheetId(ss.getId()).getSheetByName("Sheet2").getImages();
const obj = res.find(({ range }) => range.a1Notation == "A1");
if (!obj) throw new Error("Image was not found.");
const imageBlob = obj.image.blob;
// Retrieve email addresses and send emails.
const sheet = ss.getSheetByName("Sheet1");
const values = sheet.getRange("A2:B" + sheet.getLastRow()).getValues();
values.forEach(([emailAddress, assignmentName]) => {
// In your showing script, "assignmentName" is not used.
const sampleBody = "A Test Email";
const message = "Hi Mr/Mrs,<br /><br />Bellow is your info... <br><img src='cid:Footerimage'> <br>";
GmailApp.sendEmail(emailAddress, "A Test Email", message, {
htmlBody: message,
inlineImages: { Footerimage: imageBlob }
});
});
}
message
作为文本正文和HTML发送。请小心这个。注意:
参考文献:
发布于 2022-01-20 01:32:47
要发送html内容,您必须使用如下所示的参数:
GmailApp.sendEmail(emailAddress,"A Test Email", "",{htmlBody:message})
关于图像,您必须找到一种方法来调试它是如何从电子表格中产生的。也许它就像一个base64encoded,取决于此,我们可以帮助您。
直接使用单元格地址从电子表格中获取图像,如下面的getRange("A1").getValue()
使用IDE,检查是否有像getValueAsUrl()这样的方法可以帮助您解决问题。
另外,通过url将图像放入电子表格,而不是直接将其放入电子表格,又如何呢?这样,您就可以将该图像作为html对象发送。
https://stackoverflow.com/questions/70778465
复制相似问题