Googleフォームのsendmailについて
いつもお世話になっております。(知識がなく「カテゴリ」をPHPにしております。)
早速ではございますが,Googleフォームを使って申し込みサイトを設置しようかと思っております。申し込み頂いた方へは,その内容を保存しておいて頂くためのメールを自動的に送るようにしたいと考え,「Googleフォーム」「sendmail」で検索したところ,以下のサイトがヒットいたしました。
http://creazy.net/2011/03/google_form_mailsend.html
これとまったく同じにGoogleフォームを作成し,スクリプトを設置したところ,私が考えているものが送られてきました。しかし,このスクリプトは,「お名前」「メールアドレス」「件名」となっており,私が実際に作成しているGoogleフォームの項目とは異なります。
私の作成している項目は以下の通りです(Googleフォーム上の質問項目と全く同じ)。
お名前
メールアドレス
アドレスの再入力
所属(リストから選択)*6項目(リスト)ございます。
〇〇の会員ですか?(リストからの選択)*都合により〇〇と表示
これら以降もう少しございますが,省略いたします(テキスト入力あるいはリストからの選択のみです)。
返信用メール本文には,既存のスクリプトは最大限活用して,つぎのように示したいです。
*************************
▲▲ 様
申し込みありがとうございます。(→これは該当の日本語を書き換えれば良いのかなと考えます)
------------------------------------------------------------
【タイムスタンプ】
Tue Sep 01 2015 14:43:09 GMT+0900 (JST)
【お名前】
▲▲
【メールアドレス】
××××@gmail.com
【アドレスの再入力】
××××@gmail.com
【所属】
〇〇(リストの中から1つ表示される)
【〇〇の会員ですか?】
◆◆(リストの中から1つ表示される)
------------------------------------------------------------
後ほど担当者よりご連絡させていただきます。
*************************
上記のサイトには以下のようなスクリプトが提示されておりますが,なにせ,私には全く知識がなく,下記をどのように修正すれば私の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);
}
}
お礼
早々のご回答ありがとうございます。当方、まったくのド素人ですのでご指摘の内容がOSとブラウザであると理解するのに検索の必要があるほどでした。 ご指摘のようにWEB上でのものです。遅くなりましたが、OSはWin7、ブラウザは主にクロームを使用しています。 ご回答の内容から拝察するに、問題はサーバ側であって、こちらがグーグルドライブのフォーム機能を使用して入力フォームを作成する際に、合致を検証する仕組みは作れない、という理解でよろしいのでしょうか?一応、契約しているさくらのサービスを検索しています。 無知、無理解な質問で恐縮ですがよろしくお願いいたします。