昨日投稿したお問い合わせフォームの送信内容をスプレッドシートに追加するの記事の続きで、お問い合わせの送信があった際に自動返信メールが送信されるようにしてみます。
サンプルコード
前回作成したGoogle Apps Scriptのコードにメール送信の処理を追加します。
function doPost(e) { // POSTした内容を取得 var name = e.parameter.name; var mail = e.parameter.mail; var body = e.parameter.body; // スプレッドシートへの書き込み var spread = SpreadsheetApp.getActiveSpreadsheet(); var lastRow = spread.getSheets()[0].getLastRow(); spread.getSheets()[0].getRange((lastRow + 1), 1).setValue(name); spread.getSheets()[0].getRange((lastRow + 1), 2).setValue(mail); spread.getSheets()[0].getRange((lastRow + 1), 3).setValue(body); // 自動返信メールの送信 sendAutoReply(mail, { name: name, body: body, }); // returnの設定 var jsonData = { name: name, mail: mail, body: body, result: 'ok' } return ContentService.createTextOutput(JSON.stringify(jsonData)) .setMimeType(ContentService.MimeType.JSON); } function sendAutoReply(mail, data) { var title = 'お問い合わせありがとうございます。'; var body = '以下の内容でお問い合わせが送信されました。\n'; body += 'お名前:' + data.name + '\n'; body += 'お問い合わせ内容:\n'; body += data.body + '\n'; MailApp.sendEmail(mail, title, body); }
メールの送信はMailApp.sendEmail()で行えます。
コード変更後、デプロイします。
以下のようにリクエストが表示されるので、許可をクリックします。
ウェブアプリURLが変更されるので、お問い合わせフォーム内のウェブアプリURLを変更します。
これでお問い合わせ送信後に自動返信メールが送信されるようになりました。
フォームを送信してみて、入力したメールアドレスにメールが届けばOKです。
自動返信メール送信の注意事項として、送信元のメールアドレスはGoogle Apps Scriptの作成を行っているアカウントになります。
また、無料版のアカウントの場合は1日100件までしかメールを送信できないようなので、送信件数が多そうな場合は何らか対応が必要かもしれません。
コメントが承認されるまで時間がかかります。