0
私は、誰かが新しい返信を送信したか、既存の返信を編集したかに基づいて特定のメールを送信するスクリプトを作成しようとしています。提出された内容に応じて、「名字名:編集」または「名字名:回答」という件名が必要です。誰かが回答を編集すると、変更された値だけが電子メールに表示されます。ただし、名前を変更しないと、件名には表示されません。編集や回答があるたびに名前を表示するようにこれを変更する方法に関するアイデアはありますか? ありがとうございます!更新時のGoogleフォームのメール通知
function Initialize() {
try {
var triggers = ScriptApp.getProjectTriggers();
for (var i in triggers)
ScriptApp.deleteTrigger(triggers[i]);
ScriptApp.newTrigger("formSubmitted")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit().create();
} catch (error) {
throw new Error("Please add this code in the Google Spreadsheet");
}
}
function formSubmitted(e) {
if (!e) {
throw new Error("Please go the Run menu and choose Initialize");
}
try {
if (MailApp.getRemainingDailyQuota() > 0) {
// You may replace this with another email address
var email = "my email";
// Enter your subject for Google Form email notifications
var key, entry,
ss = SpreadsheetApp.getActiveSheet(),
cols = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues()[0],
message = "",
first = e.values[1],
last = e.values[2];
var editSubject = first + " " + last +": Edit";
var submitSubject = first + " " + last + ": Submitted";
// Iterate through the Form Fields
for (var keys in cols) {
key = cols[keys];
entry = e.namedValues[key] ? e.namedValues[key].toString() : "";
// Only include form fields that are not blank
if ((entry !== "") && (entry.replace(/,/g, "") !== ""))
message += key + ' :: ' + entry + "\n\n";
}
}
if (e.range.getNotes()[0].join('')) {
MailApp.sendEmail(email, editSubject, message);
}
else {
MailApp.sendEmail(email, submitSubject, message);
}
}
catch (error) {
Logger.log(error.toString());
}
}