• 文字サイズ
解決済

google form × googleスプレッドシートのスクリプトでのメール自動送信

  • 相談者:非公開
  • 2019/05/16 16:38
■現状
① google formに入力・送信
②内容をスプレッドシートに反映
③以下のスクリプトでメールにフォームから送信した内容を自動送信

■問題
tomail に 内容は問題なく送信されているが、
合わせてフォームの内容が書き込まれていない、
空メールが同時に届く

■解決したいこと
空メールが届かないようにしたい


■コード
ーーーーーーーーーーーーーーーーー

function onFormSubmit(e) {
var subject = 'sampletext' + e.namedValues["項目1"] ;
var items = ['項目1', '項目2', '項目3';
var body = 'sampletext';

for (var i = 0, len = items.length, name; i < len; i++) {
name = items[i];
body += '【' + name + '】\n' + e.namedValues[name] + '\n\n';
}

// スプレッドシートの操作
var sh = SpreadsheetApp.getActiveSheet();
var rows = sh.getLastRow();
var cols = sh.getLastColumn();
var rg = sh.getDataRange();
var myValues = rg.getValues(); //指定した範囲の値を格納
Logger.log('rows='+rows+' cols='+cols);
var y = rows;
var x = 8;

// メール送信先(管理者等) CCあり
var mail_admin = 'info1@example.co.jp';
var mail_cc = myValues[y-1][x]+','+myValues[y-1][x+1]+','+myValues[y-1][x+2];
var mail_reply = mail_admin;

Logger.log('rows='+rows+' cols='+cols);



// メール宛先
mailto = 'info1@example.co.jp';

// メール送信
if ( mailto ) {
MailApp.sendEmail(mailto, subject, body, {cc : mail_cc, replyTo : mail_reply});
}else{
MailApp.sendEmail(mail_admin, 'error spreadsheet none mailaddress', body);
}
}

ーーーーーーーーーーーーーーーーー

ご確認をお願いいたします。
投稿内容について報告する




  • 返信者:非公開
  • 2019/05/16 17:29
ECマスターズの山岡です。

> var items = ['項目1', '項目2', '項目3';

こちらの部分は、フォーラムに書き込む際に、サン………(省略)………
  • 返信者:非公開(質問者)
  • 2019/05/17 16:26
ご回答有り難うございます。

>配列の際、] が抜けておりました。
失礼いたしました。こちら、サンプルとして記述しておりますので、
誤って削除してしっま………(省略)………
  • 返信者:非公開
  • 2019/05/17 17:00
ECマスターズの田中です。

> ※スクリプトの記述に不慣れなため、、、、具体的にコピペでいけるように記載いただけると嬉しいです。

それでは、判定式を………(省略)………
  • 返信者:非公開(質問者)
  • 2019/05/17 17:23
ありがとうございます。
こちらで解決いたしました!!

とても助かりました。………(省略)………