Googleフォームの自動返信を、送信元変更+本文カスタムで実装する方法

Apps Script

「自動返信の本文を自由にしたい」「送信元(From)をクライアントのアドレスにしたい」という要望はよくあります。本記事では、**方式A(あなたのGmailから“正規に”そのアドレスで送る)**を使い、本文の自由化+送信元の変更を同時に実現する手順を解説します。ポイントは Gmailの“送信元エイリアス(Send mail as)” を事前に登録・確認することです。

Apps Scriptで送る

  • フォーム → スクリプトエディタ
  • 例(許可済みエイリアスで送信):
  • トリガーで「フォーム送信時」を追加
  • エラー時はfromが未登録/権限不足の可能性を確認

まず、送信元が変更できるように、メールアドレスを、Gmailに追加します。登録方法は、今日から使える!Gmail差出人切替・他アカ取り込み・代理操作にまとめましたので、参考の一つとしてご活用ください。

準備

  • 事前登録した送信元エイリアスは、Gmail の「アカウントとインポート」設定、名前から登録します。
  • メールアドレスを収集する↠「回答者からの入力」を選択します。
  • 「回答」↠「スプレッドシートシートにリンク」をクリックしてください。

そして、シートのIDと、タブの名前を入力します。

function onFormSubmit(e) {
  try {
    const spreadsheetId = ""; // あなたのシートID
    const sheetName = "フォームの回答 1"; // タブの名前

    const sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
    const lastRow = sheet.getLastRow();
    const row = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn()).getValues()[0];
    const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];

    // ヘッダーとデータを対応させる
    const v = {};
    headers.forEach((h, i) => v[h] = [row[i]]);

    // 「メールアドレス」列を取得
    const to = v['メールアドレス'][0];

    // 本文生成(控えなし、ありがとうだけ)
    const subject = 'ご回答ありがとうございます';
    const bodyHtml = `
      <p>このたびはご回答いただき誠にありがとうございました。</p>
    `;

    // メール送信
    GmailApp.sendEmail(to, subject, 'text fallback', {
      htmlBody: bodyHtml,
      from: 'xxx@xxxx.xxx'
    });

  } catch (err) {
    console.error('onFormSubmit error:', err);
  }
}
JavaScript

トリガー設定

  1. 左メニュー時計🕑マークの「トリガー」 をクリック
  2. 下記のように設定します:
    • 実行する関数を選択 → onFormSubmit
    • 実行するデプロイを選択 → Head
    • イベントのソースを選択 → フォームから
    • イベントの種類を選択 → フォーム送信時
  3. 保存すると、権限の承認画面が出ます。
    → 「続行」→「自分のGoogleアカウント選択」→「許可」

一度、手動で、「実行」します。エディタに戻って、実行の許可をします。

テストで、実際にフォームから回答を送信してみましょう。

タイトルとURLをコピーしました