前提・実現したいこと
Google Apps Scriptを使用してSpreadSheetに入力してあるメールアドレス、宛名、件名、本文テンプレをGmailで自動一斉送信したいです。
この時、sheetの取得をGetsheetId()[]; を使用。
さらに、SpreadSheetに送信完了したら送信時の時刻と✓を自動入力したいです。
またtry-catchを使用してメールが送信できなかった場合Spreadsheetにエラーを入力したいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Google Apps Script
JavaScript
試したこと
function sub1() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var id = sheet.getSheetId();
var data = sheet.getRange("A1:F4").getValues();
var mail_address = sheet.getRange("A1:A4").getValues();
for (var j =0; j< 4; j++) {
for (var i =0; i< 4; i++ ) {
sendMail(mail_address[i], data[j]);
}
}
}
// メールを送る
function sendMail(mail_address, data) {
var subject1 =
var body =
var message= data ;
MailApp.sendEmail({to:mail_address , subject:subject1, body:body + message });
}
//getting spreadsheet
//var id =SpreadsheetApp.getActiveSheet().getSheetId();
//Logger.log(id.toString());
//var sheet= spreadsheet.getSheets()[0]; // to メールアドレス
//var name =ss.getActivesheets()[0].getRange('B2:B4').getValue(); // 差出人の名前
//var subject =ss.getActivesheets()[0].getRange('D2').getValue(); // メールタイトル
//var body = ss.getAvtivesheets()[1].getRange('A1').getValue(); // 本文
//GmailApp.sendEmail(recipient, subject, body, { attachments: attachments });
//enter the timestamp into the cell
if (col == 5)//5 is E
var col = range.getColumn(5);
var time = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');
//console.log(ss.getRange('E2:E4').getA1Notation());
//sheet.getRange('E2:E4').setValue(time);// 4 is E列
//checkbox in the sheet
var checkbox
//checkbox = ss.getSheets()[0].getRange('F2:F4').setValue("✔");
//Get attachments from Drive
var folderId = ('1xM4GBqq_RpB4SkOau4pUWt0TZK6Kmv3K');
var folder = DriveApp.getFolderById('1xM4GBqq_RpB4SkOau4pUWt0TZK6Kmv3K');
var files = folder.getFiles();
var attachments = [];
while (files.hasNext()) attachments.push(files.next());
var fileId = "1hiBe0KSB5093MvutxTq2tHusMT-2ozxjjG8xmHvM7Cc";
var file = DriveApp.getFileById('1hiBe0KSB5093MvutxTq2tHusMT-2ozxjjG8xmHvM7Cc');
console.log(file.getName());
// Try sending email
try {
// send email
var recipient = ss.getsheets()[0].getRange('C2:C4').getValue(); // to メールアドレス
var name =ss.getsheets()[0].getRange('B2:B4').getValue(); // 差出人の名前
var subject =ss.getsheets()[0].getRange('D2').getValue(); // メールタイトル
var body = ss.getsheets()[1].getRange('A1').getValue(); // 本文
GmailApp.sendEmail(recipient, subject, body, { attachments: attachments });
if (attachedFileId) {
var attachedFile = DriveApp.getFileById(attachedFileId); // 添付ファイル
}
GmailApp.sendEmail(recipient, subject, body, { attachments: attachments });
// add check mark for successful sending
checkbox = ss.getsheets()[0].getRange('F2:F4').setValue("✔");
//catch any errors
} catch (e) {
console.log('error:', + e.message, checkbox);
//error = ss.getsheets()[0].getRange('F2:F4').setValue(e);
// report error to user in the sheet
//insert error instead of checkbox
}// return {
//SpreadsheetApp.getUi().toast('Email send failed')
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー