例如,我正在使用 Google App Script 發送電子郵件,并且電子郵件地址、電子郵件內容來自 google sheet (sheet1),

只是一個代碼示例(如果谷歌驅動器中的頁腳影像)
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
}
}
);
}
我的問題是,如果頁腳影像來自同一個谷歌作業表(sheet2)中的單元格,我如何在我的谷歌應用程式腳本中參考這個頁腳影像。

uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想從嵌入到單元格中的影像中檢索影像資料。并且,您希望使用檢索到的影像作為頁腳發送電子郵件(在這種情況下,您希望將影像用作行內影像)。
問題和解決方法:
不幸的是,在當前階段,沒有直接從嵌入到單元格中的影像中檢索影像資料的方法。所以在這種情況下,作為一種解決方法,我想使用我在這里回答的方法提出一個示例腳本。
關于你的展示腳本,當getValue回圈使用時,處理成本變高。而當你使用一張圖片時,var image1 = DriveApp.getFileById("fileID").getBlob();不需要被包含在回圈中。
用法:
在此解決方法中,為了從嵌入到單元格中的影像中檢索影像資料,使用了 Google Apps 腳本庫。
1. 安裝 Google Apps 腳本庫。
請安裝 Google Apps 腳本庫。關于安裝庫的方法,您可以在此處查看。
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 }
});
});
}
運行此腳本時,將從“Sheet2”的單元格“A1”中檢索影像資料,并使用從“Sheet1”的“A”列檢索到的電子郵件地址發送電子郵件。此時,影像資料將作為頁腳使用 inline-image 附加到電子郵件中。
從您的顯示腳本中,
message以文本正文和 HTML 正文的形式發送。請注意這一點。
筆記:
- 在此示例腳本中,假設電子郵件地址被放入“Sheet1”的“A”列,影像資料被放入“Sheet2”的單元格“A1”。當您改變這種情況時,腳本可能無法使用。請注意這一點。
參考:
- DocsServiceApp
- 相關執行緒。
- 如何從谷歌應用程式腳本訪問新的“單元格內影像”?
uj5u.com熱心網友回復:
要發送 html 內容,您必須使用如下引數:
GmailApp.sendEmail(emailAddress,"A Test Email", "",{htmlBody:message})
關于影像,您必須找到一種方法來除錯它是如何從電子表格中獲取的。也許它以 base64 編碼的形式出現,取決于此,我們可以為您提供幫助。
直接使用單元格地址從電子表格中獲取影像,例如 getRange("A1").getValue()
使用 IDE,檢查是否有像 getValueAsUrl() 這樣的方法,可以幫助您。
另一件事,您將影像通過 url 放入電子表格而不是直接呢?這樣您就可以將該影像作為 html 物件發送
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416287.html
標籤:
