実現したいこと
ここに実現したいことを箇条書きで書いてください。
- Googleフォームで送信していただいた後に、受信側に表示されるメールアドレスの名前を任意の名前にしたいです。
前提
予約フォームを作っています。諸々のスクリプトは動画などを見ながら作成できて上手く作動してくれるのですが、確認メールを送ると受信側に現状、私のメールアドレスがそのまま表示されてしまっています。
発生している問題・エラーメッセージ
エラーメッセージ
ReferenceError: mail_options is not defined
at sendEmail(コード:116:50)
at receivedApplication(コード:54:3)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
下記、スクリプトになります
function myFunction() {
var form = FormApp.getActiveForm();// Google フォーム オブジェクトの取得
Logger.log(form.getId()); // Google フォーム のid
Logger.log(form.getTitle()); // Google フォーム のタイトル
Logger.log(form.getDescription()); // Google フォーム の説明文
Logger.log("==========");
// Google フォーム の各質問
var items = form.getItems();
for(var i=0; i<items.length; i++){
var item = items[i];
Logger.log(item.getTitle());// 質問のタイトル
}
}
const form = FormApp.getActiveForm();
//スプレッドシートの「日程」のIDを↓にいれる。
const spreadSheet = SpreadsheetApp.openById("ここにID");
const reserveSheet = spreadSheet.getSheetByName("予約");
const listSheet = spreadSheet.getSheetByName("日程");
// --------------------
// フォーム送信時の処理
// --------------------
function receivedApplication(e) {
// フォームの送信内容
const email = e.response.getRespondentEmail();
const items = e.response.getItemResponses();
const preferredDate = ( items[0].getItem().getTitle() === "参加希望日" ? items[0].getResponse() : "" );
let result = "";
const mail_options = {
'name' : 'ここで名前を決めたかった' //これで差出人名を変更できると思ったのですが、できませんでした
}
if ( preferredDate ){
// 日程シートチェック&更新
result = checkAvailability(preferredDate);
// 予約シートに申込内容を書き込み
if ( result = "OK" ){ reserveSheet.appendRow([email, preferredDate]); }
// フォームを更新
editForm();
} else {
result = "NG";
}
// メール送信
sendEmail(email, preferredDate, result, mail_options);
}
// ---------------------
// 予約状況をチェックする
// ---------------------
function checkAvailability(preferredDate){
// listシートを配列に格納
const list = listSheet.getDataRange().getValues();
list.shift();
// リストから予約日を探し、定員を確認する
for ( let i = 0; i < list.length; i++ ){
if ( list[i][0] == preferredDate ){
// 予約済 < 定員であればOK
if ( list[i][3] < list[i][1] ){
listSheet.getRange(i + 2, 3).setValue( list[i][3] );
return "OK";
} else {
return "NG";
}
}
}
// 希望日がリストに存在しなかった場合はNG
return "NG";
}
// ----------------------
// 予約結果をメール送信する
// ----------------------
function sendEmail(email, preferredDate, result){
const mailTitle = "予約結果について";
let mailBody;
if ( result == "OK" ){
mailBody = "予約が完了しました。\n"
+ `予約日:${preferredDate}
当日は、予約時間の○分前より受付致します。 \n
<当日の流れについて>
※内容記載
※ご予約のキャンセルは、こちらからお願い致します。 https://~ `
} else {
mailBody = "定員超過のため予約できませんでした。\n"
+ "下記のフォームから再度申請してください\n"
+ form.getPublishedUrl();
}
// 結果メール送信
GmailApp.sendEmail(email, mailTitle, mailBody, mail_options);
}

回答1件
あなたの回答
tips
プレビュー