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()); 
} 
} 

答えて

0

あなたは、ユーザーがフォームに応答するときに電子メールを送信するためにtriggersを使用しています。このdocumentationをチェックすることをお勧めします。

サンプル要求:

/** 
* Adjust the onFormSubmit trigger based on user's requests. 
*/ 
function adjustFormSubmitTrigger() { 
    var form = FormApp.getActiveForm(); 
    var triggers = ScriptApp.getUserTriggers(form); 
    var settings = PropertiesService.getDocumentProperties(); 
    var triggerNeeded = 
     settings.getProperty('creatorNotify') == 'true' || 
     settings.getProperty('respondentNotify') == 'true'; 
関連する問題