Googleフォームでsend-mail

Googleドライブでフォーム作成

  • フォームを選択

入力フィールド(テキスト)を作成
  • テキストを選択、「質問のタイトル」を「お名前」にする



アイテムを追加

  • テキストを選択、「質問のタイトル」を「メールアドレス」にする
  • エラーチェック:@が記入されない場合は、エラーを返す



アイテムを追加

  • テキストを選択、「質問のタイトル」を「件名」にする



アイテムを追加

  • 段落テキストを選択、「質問のタイトル」を「お問い合わせ内容」にする


「回答先を選択する」をクリック

「新規スプレッドシート」を選択し、任意のシート名を入力

  • 作成
確認ページに表示する内容を記述

「回答を表示」をクリックする

「ツール」→「スクリプトエディタ」を選択

スプレッドシート」を選択

function sendMailFromForm() {
    Logger.log('sendMailFromForm() debug start');

    //------------------------------------------------------------
    // 設定エリアここから
    //------------------------------------------------------------

    // 件名、本文、フッター
    var subject = "[お問い合わせ]"; 
    var body
        = "お問い合わせありがとうございます。\n\n"
        + "------------------------------------------------------------\n";
    var footer
        = "------------------------------------------------------------\n\n"
        + "後ほど担当者よりご連絡させていただきます。";

    // 入力カラム名の指定
    var NAME_COL_NAME = 'お名前';
    var MAIL_COL_NAME = 'メールアドレス';
    var SUBJ_COL_NAME = '件名';

    // メール送信先
    var admin = "admin@example.com"; // 管理者(必須)
    var cc    = "";    // Cc:
    var bcc   = admin; // Bcc:
    var reply = admin; // Reply-To:
    var to    = "";    // To: (入力者のアドレスが自動で入ります)

    //------------------------------------------------------------
    // 設定エリアここまで
    //------------------------------------------------------------

    try{
        // スプレッドシートの操作
        var sh   = SpreadsheetApp.getActiveSheet();
        var rows = sh.getLastRow();
        var cols = sh.getLastColumn();
        var rg   = sh.getDataRange();
        Logger.log("rows="+rows+" cols="+cols);

        // メール件名・本文作成と送信先メールアドレス取得
        for (var j = 1; j <= cols; j++ ) {
            var col_name  = rg.getCell(1, j).getValue();    // カラム名
            var col_value = rg.getCell(rows, j).getValue(); // 入力値
            body += "【"+col_name+"】\n";
            body += col_value + "\n\n";
            if ( col_name === NAME_COL_NAME ) {
                body = col_value+" 様\n\n"+body;
            }
            if ( col_name === MAIL_COL_NAME ) {
                to = col_value;
            }
            if ( col_name === SUBJ_COL_NAME ) {
                subject += col_value;
            }
        }
        body += footer;

        // 送信先オプション
        var options = {};
        if ( cc )    options.cc      = cc;
        if ( bcc )   options.bcc     = bcc;
        if ( reply ) options.replyTo = reply;

        // メール送信
        if ( to ) {
            MailApp.sendEmail(to, subject, body, options);
        }else{
            MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
        }
    }catch(e){
        MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
    } 
}
  • 23行目の発信者のメールアドレスを変更する

「リソース」→「現在のプロジェクトのトリガー」をクリック

「プロジェクト名」を記述して「OK」

「トリガー設定されていません。」をクリック

最後のプルダウンを「フォーム送信時」に変更し、保存する

承認を聞かれるので「続行」
  • 「承認する」をクリックする

フォームを送信

  • 「共有するリンク - 埋め込む」で、iframeソースコードを取得
  • HTMLドキュメントにiframeソースコードを貼り付ける
  • サーバーにアップロードして完了