メールの一斉送信システムを作成しているのですが、
スプレッドシートに名前、メールアドレスリストを作成し、
指定したドキュメント内のテキストを自動で送るよう設定はできたのですが、
ドキュメント内画像をインラインで表示しようとしたところ、
Exception: Cannot retrieve the next object: iterator has reached the end.
と、イテレータのエラーが出ます。
画像はグーグルドライブにファイル"test"を作っており、その中に.jpgで保存しております。
画像は全部で7枚あり、各所に表示させたいです。
どこを直せば良いのか、また具体的なコードも書いていただけると助かります。
初心者で色々と間違っているところもあると思いますが宜しくお願い致します。
function myFunction() {
var SheetName=SpreadsheetApp.getActiveSheet();
var SheetRow=SheetName.getDataRange().getLastRow();
var docMail=DocumentApp.openById("ドキュメント");
var strDoc=docMail.getBody().getText();
var driveImage = DriveApp.getFilesByName("test").next();
var strSubj="タイトル"; //タイトル
var strFrom="info@〇〇.jp"; //Fromのアドレス
var strSend="株式会社〇〇"; //差出人の名前
for(var i=2;i<=SheetRow;i++){
var strComp=SheetName.getRange(i,1).getValue();
var strName=SheetName.getRange(i,2).getValue();
var strToAd=SheetName.getRange(i,3).getValue();
var strBody=strDoc.replace(/{社名}/,strComp).replace(/{担当者名}/,strName);
GmailApp.sendEmail(
strToAd,
strSubj,
htmlBody, '<img src="cid:image1"><img src="cid:image2"><img src="cid:image3"><img src="cid:image4"><img src="cid:image5"><img src="cid:image6"><img src="cid:image7"><br/><img src="cid:test">',
inlineImages, {
image1: image.getBlob(),
image2: image.getBlob(),
image3: image.getBlob(),
image4: image.getBlob(),
image5: image.getBlob(),
image6: image.getBlob(),
image7: image.getBlob(),
test: driveImage.getBlob()
},
from, strFrom,
name,strSend
);
}
}
あなたの回答
tips
プレビュー