###前提・実現したいこと
GASでファイルを添付し、メーリングリストで一斉送信するシステムを作成したいのですが、
1.メーリングリストとしてのスプレッドシートからの社名・宛名・メールアドレス・本文等の差し込み
2.指定ファイルをPDF化して特定のメールアドレスに送付すること
動作はするのですが、差し込み元のスプレッドシート最終行の相手にしかメールが届かない状況です。
なぜなのかわからず困っております。お力をお貸しいただけませんでしょうか。
###発生している問題・エラーメッセージ
エラーメッセージはありません。
###該当のソースコード
function myFunction() {
/* スプレッドシートのシートを取得と準備 */
var spreadsheet=SpreadsheetApp.getActiveSheet(); //シートを取得
var rowSheet=spreadsheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得
/* ドキュメントを取得する */
var docTest=DocumentApp.openById("ドキュメントID"); //ドキュメントをIDで取得
var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得
/////////////////////////////////////////////
// IDで指定したスプレッドシートをPDF化したい場合//
////////////////////////////////////////////
// PDF化したいスプレッドシートのID
var ssid = "スプレッドシートのID";// スプレッドシートのID
// シートID(gid)を指定
var sheetid = "シートID";
// 指定したスプレッドシートを開く
var ss = SpreadsheetApp.openById(ssid);
//スプレッドシート上のシートをPDFへ変換 var pdf = ss.getAs('application/pdf');
var pdfname = "テスト.pdf";
//PDFをドライブへ作成(保存されます) DriveApp.createFile(pdf).setName(pdfname); /* メール表題、fromアドレス、差出人名を準備 */
var strSubject="テストタイトル"; //表題
var strFrom="メールアドレス"; //From
var strSender="名前"; //差出人
/* シートの全ての行について社名、姓名を差し込みログに表示*/
for(var i=2;i<=rowSheet;i++){
var strCompany=spreadsheet.getRange(i,1).getValue(); //社名 var strSecond=spreadsheet.getRange(i,2).getValue(); //姓 var strFirst=spreadsheet.getRange(i,3).getValue(); //名 var strTo=spreadsheet.getRange(i,4).getValue(); //toアドレス var strBody=strDoc.replace(/{社名}/,strCompany).replace(/{姓}/,strSecond).replace(/{名}/,strFirst); //社名、姓名を置換 Logger.log(strBody); //ドキュメントの内容をログに表示
}
GmailApp.sendEmail(
strTo,
strSubject,
strBody,
{attachments:pdf}
);
}
###試したこと
データレンジを変更してみたりなどしたのですが、うまくいきませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
こちらのコードを書くために参照したURL
リンク内容
リンク内容
リンク内容
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/10 09:50
2018/01/10 10:15 編集
2018/01/10 10:25
2018/01/11 00:26