GASでアンケートフォームに回答されたら、その内容の一部を特定の人にメールしたいです。
下記内容でトリガー(アンケートフォームに回答時にメール送信)を設定しても
上手くいきません。。。
色々試しましたがうまくいかず困っております。どなたかお力添えいただけませんでしょうか。
①これだと、アンケートフォーム送信時に無事メールは送られるのですが、
過去に回答したフォームの内容も全部メールされてしまいます。
function sendMail(e){
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();;
const DOC_URL = 'https://docs.google.com/メール本文/edit';
const doc = DocumentApp.openByUrl(DOC_URL);
const docText = doc.getBody().getText();
const subject = '【テスト】';
const address = "sss@gmail.com,aaa@gmail.com";
for(let i = 2; i <= lastRow; i++){
const namae = sheet.getRange(i, 3).getValue();
const haizoku = sheet.getRange(i, 4).getValue();
const koumoku = sheet.getRange(i, 5).getValue();
const body = docText
.replace('{名前}',namae)
.replace('{配属}',haizoku)
.replace('{項目}',koumoku)
GmailApp.sendEmail(address, subject, body, {
name: '窓口',bcc: '',
attachments: []});
}
}
②これだとトリガーがエラーになります。
トリガーは「スプレッドシートから」「メール送信時に」「毎日受け取る」
エラーは「失敗しました」「タイムアウト」
です。
function sendsendMail(e){
var itemResponses = e.response.getItemResponses();
const DOC_URL = 'https://docs.google.com/メール本文/edit';
const doc = DocumentApp.openByUrl(DOC_URL);
const docText = doc.getBody().getText();
const subject = '【テスト】';
const address = "ooo@gmail.com,aa@gmail.com";
const namae = itemResponses[0].getResponse();
const haizoku = itemResponses[1].getResponse();
const koumoku = itemResponses[2].getResponse();
const body = docText
.replace('{名前}',namae)
.replace('{配属}',haizoku)
.replace('{項目}',koumoku)
GmailApp.sendEmail(address, subject, body, {
name: '窓口',bcc: '',
attachments: []});
}
回答2件
あなたの回答
tips
プレビュー