2022/5/6 HPトップとサービス一覧を一新しました!トップの新着情報にご注目ください!

28-2. Googleフォームの自動返信メール(任意の送信元アドレス、任意のメール内容)

はじめに

Googleフォームには回答のコピーを自動送信する機能がデフォルトで備わっています。しかし、送信元アドレス(forms-receipts-noreply@google.com)やメール内容が編集できず、どうしてもオリジナリティに欠けます。

そこで、任意の送信元アドレスから任意のメール内容を自動送信する設定の備忘録を残しておきます。

参考文献

先達に感謝いたします。

グーグルフォームで自動返信メールを簡単に送る方法②[GAS編] | self-methods
前回、アドオンでの自動返信についてご紹介しましたが 関連記事:グーグルフォームで自動返信メールを簡単に送る方法①[アドオン編] 定型文しか送れない送信元メールアドレスを変更できない という問題がありました。今回はより柔軟な設定が出来る「Go

Gmailに送信元メールアドレスを追加

Gmailの設定から、送信元メールアドレスの追加を行います。参考文献によっては「エイリアスとして扱います」を必須としているところもありますが、どちらでも問題ないようです。

Googleフォームの作成

Googleフォームを作成し、デフォルトの自動返信をOFFに設定します。

質問を作ります。

フォームURLを取得します。

回答を記録するスプレッドシートを作成します。

スプレッドシートのGASの作成

スプレッドシートのApps Scriptを開きます。

コードを貼り込んで赤い部分を編集します。JavaScriptにおいて文字列中の変数を展開するには、文字列を「`」(バッククォート)で挟む必要があることに注意してください。また、自分の@gmail.com以外を送信元にするため「GmailApp.sendEmail()」関数を使うことにも注意してください。(MailApp.sendEmail()ではない)

function AutoSendMail(e){

  //メールアカウントを取得・表示
  let aliases = GmailApp.getAliases();
  Logger.log(aliases);

  //フォームの回答を取得(カラム順)
  const [TimeStamp, MailAdress, Name, Content] = e.values;
  
  //メールの設定
  let to = MailAdress;
  let subject = "回答のコピーをお送りします";
  let fromAddress = "bourbon@sample.com"
  let options = {
    from: fromAddress,
    bcc: fromAddress,
    name: "ブルボン家"
  }
  let body = ""
  body += "アンケートへのご協力をありがとうございました。\n";
  body += "回答のコピーをお送りします。\n";
  body += "\n";
  body += `お名前:${Name}様\n`;
  body += `好きなブルボンは?:${Content}\n`;
  
  //メールの送信 
  GmailApp.sendEmail(to, subject, body, options);
}

参考文献によってはこのステップをスルーしているところもありますが、保存してから必ず一度「実行」します。Googleの権限確認が出るので許可します。

コードの冒頭にメールアカウントの取得と表示を入れてあります。実行ログに表示されたメールアカウントの中に設定したい送信元アドレスが含まれていることを確認します。(後ろのエラーは気にしなくて大丈夫です)

「トリガー」のタブから新規トリガーを追加します。ここでも権限確認が出るので許可します。

アンケートへの回答

準備ができたので、アンケートに回答してみます。結果はスプレッドシートに書き込まれます。

回答者にメールが届けばOKです。bccで管理者にも届くようにしています。

まとめ

このテクニックには様々な応用が考えられます。例えばWordPressの記事はメールから投稿することができるため、Googleフォーム→メール→記事投稿という流れが成立するはずです。

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