Googleドライブを使ったお問い合わせフォームのメール送信スクリプトの改変方法

このQ&Aのポイント
  • Googleドライブを使ったお問い合わせフォームでのメール送信スクリプト「sendMailFromForm」という名前の関数を改変する方法を説明します。
  • メール送信先を自分のメールアドレスに変更することができ、お問い合わせしてきた人にはメールを返さず、自分にだけ届ければ良い設定にすることも可能です。
  • また、フォームに「件名」という入力部分がない場合、省略することもできます。改変方法について詳しく説明します。
回答を見る
  • ベストアンサー

Google Apps Scriptの質問です

プログラマではありませんが、Googleサイトでサイトを作成しています。 そこでGoogle ドライブの機能を使ってお問い合わせフォームを設置したのですが お問い合わせがあった時に自分にメールが来るようにしたいと思いました。 調べたところ、以下のページでメールを送信するスクリプトを埋め込む方法が紹介されていました。 http://creazy.net/2011/03/google_form_mailsend.html ここの中段くらいにある「sendMailFromFormという名前の関数」をコピーして、自分のサイト用に使おうと思いました。 しかし、プログラム経験がないため内容が難しく、改変の仕方が判りません。 とりあえずメール送信先の「admin@example.com」を自分のメールアドレスにするのだけはなんとなく判りました。 やりたい事は ・お問い合わせしてきた人にはメールを返さなくて良い(自分にだけ届けばOK) ・フォームに「件名」という入力部分はないので、そこは省きたい どこをどう改変すればいいのか判る方おられましたらよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • backy0175
  • ベストアンサー率87% (102/116)
回答No.2

フォームの送信があったことをメールで自分に通知されるようになさりたいのであれば、 Google Apps Scriptを使用しなくても通知メールを受け取れますよ。 フォームのデータが保存されるスプレッドレッドシートを開いてツールメニュー → 通知ルール を選んでください。 「通知ルールの設定」という画面が表示されますので、「ユーザーがフォームを送信したとき」という項目にチェックマークを入れ、「通知方法」を選び、「保存」ボタンを押すと「通知メール」の設定ができます。

tokidome
質問者

お礼

回答ありがとうございます。 なんと、スクリプトを使わずともできたのですね。 Gメールではなく別のメアドに送りたかったのですが、調べてみたところ メールの転送もできる事がわかったので、教えて頂いた方法と組み合わせ 問題なくやりたかった事ができました。 助かりました。

その他の回答 (1)

noname#247307
noname#247307
回答No.1

ざっと見たところ、これは送信されたフォームの内容をGoogleドキュメント(スプレッドシート)に保存し、それからと投稿者にメールを送信する、というものですね。 あなたが考えているのは、「誰かがフォームから送信したら自分(管理者)に知らせる」というものではないですか? だとすると、全然違います。そもそも、これは管理者にはメールを送りません。メールアドレス不明で送信に失敗した時だけ管理者に連絡するのみですから。 単に、「誰かがフォームを送ったら自分にメールを送って知らせる」というだけなら、以下のように1行で済みます。 function sendMail(e){ MailApp.sendEmail('hoge@example.com', 'フォーム送信','フォームが送信されました。'); } hoge@example.comを自分のメールアドレスにしてください。'フォーム送信'がメールのタイトル、'フォームが送信されました。'がメールの本文です。適当に書き換えてください。送信されたフォームの内容などはメールにありませんが、とりあえず「連絡するだけ」なら十分では。 スクリプトができたら、以下のようにしてフォームの送信イベントにバインドします。 スクリプトエディタの「リソース」から「現在のプロジェクトのトリガー」を選ぶ。 「新しいトリガーを追加」をクリック。 「実行」で作成した「sendMail 」を選択。 「イベント」項目で「フォームから」「フォーム送信時」を選択。

参考URL:
http://libro.tuyano.com/index3?id=645006&page=3
tokidome
質問者

お礼

お返事遅れて申し訳ありません、回答ありがとうございます。 なるほど、勘違いしていたようですね。 スクリプトの使用方法、今後の参考にさせて頂きます。

関連するQ&A

  • Googleフォームで作ったお問い合わせフォーム

    Googleフォームで作ったお問い合わせフォームを、 自分のhtmlサイトに使っていこうと思っています。 自分のhtmlサイトは複数あって、それぞれにお問い合わせフォームを設置します。 ここで問題だと思ったのが、 『どのhtmlサイトのお問い合わせフォームから送られてきたか分からなくなる』ことです。 GoogleフォームにサイトURLの項目を入れたらいいのかもしれませんが、 項目は少ない方がいいですし、正しくURLが書かれる保証もありません。 WordPressのプラグイン『Contact Form 7』であれば、 〇〇のサイトから送られてきました。という記載がメールに表示されます。 このように、Googleフォームで作ったお問い合わせフォームが、 どのhtmlサイトから送られてきたか、区別できる方法などはあるでしょうか? また、Googleフォーム以外で、 『どのhtmlサイトから送られてきたかが分かるお問い合わせフォーム』 を作れるサービスなどはあるでしょうか? よろしくお願いいたします。

  • 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); } }

    • ベストアンサー
    • PHP
  • Google Apps Scriptの記述

    フォームに入力したら、フォームに基づいてメールを送れるようにしたいと考えています。 そこで次のScriptを記述しました。しかし、フォームに入力し終わってもメールが送信されません。 Google Apps Scriptの参考サイトも無い事と、Googleも仕様を次々新しくしているので持っている書籍があまり参考になりません。 トリガーは次の通りです。 現在のプロジェクトのトリガーで、実行 mySendhokoku イベントスプレッドシートからフォーム送信時 としています。 scriptは function mySendhokoku(e) { var mail_to=e.nameValues["送信先"]; var datetime= new Date(); var hokoku=e.nameValues["報告種類"]; var kaisi=e.nameValues["開始時間"]; var shuryo=e.nameValues["終了時間"]; var kyukei=e.nameValues["休憩時間"]; var biko=e.nameValues["本文備考"]; var today=formatDate(datetime,"MM/dd"); var subject=hokoku+"連絡"+today+"名前"; var body="名前"+"\n\n"; var body=body+"開始時刻"+kaisi+"\n\n"; var body=body+"終了時刻"+shuryo+"\n\n"; var body=body+"休憩時間"+kyukei+"\n\n"; var body=body+biko+"\n\n"; MailApp.sendEmail(mail_to,subject,body); } ちなみに”名前”と言うところは実際は私の名前が入っています。読み替えてください。 日付は5/5などの様に記述したいと思っています。 初心者で至らない点ありますが、よろしくお願いいたします。

  • Googleフォームでの返信

    Googleフォームをお問い合わせとして、サイトに設置しました。 そこから、テストでお問い合わせをしてみたら、 Gmailには、『フォーム「お問い合わせ」に新しい回答があります。』という件名で届きました。 そのまま、お問い合わせに返信できるのかと思ったら、 Googleフォームへのリンクがあり、お問い合わせ内容を確認できるだけです。 Googleフォームで作った『お問い合わせ』に、お問い合わせがあった場合、 そのお問い合わせに返信できるようにするには、どのようにすればいいでしょうか? よろしくお願いいたします。

  • Googleフォームについて

    htmlサイトにGoogleフォームでお問い合わせを作ろうと思っています。 そこで、質問が3点あります。 ■『事前入力したURLを取得』→リンクを取得で得たURLを、 そのままhtmlサイトに貼り付けるのだけでいいのでしょうか? ■お問い合わせメールをメインアカウントで作りました。 ですが、お問い合わせを受け付けるgmailはサブアカウントでしたいです。 この場合、どのようにすればサブアカウントで受け取るようにできるでしょうか? ■メールアドレスの欄を作ると、『メールアドレスの収集設定を有効にする』 という項目がでます。 これは、お問い合わせフォームを作るときも、有効にしておくべきでしょうか? 実際にhtmlサイトにGoogleフォームで、お問い合わせを作ったことがある方、 ご教示いただけたら幸いです。よろしくお願いいたします。

  • google apps を利用したDNS設定に関し

    ドメインは、VALUE-DOMAINで取得し、メールサーバーはgoogleAppsを利用する為下記の内容をDNS設定に追記しました mx ASPMX.L.GOOGLE.COM. 1 mx ALT1.ASPMX.L.GOOGLE.COM. 5 mx ALT2.ASPMX.L.GOOGLE.COM. 5 mx ASPMX2.GOOGLEMAIL.COM. 10 mx ASPMX3.GOOGLEMAIL.COM. 10 mx ASPMX4.GOOGLEMAIL.COM. 10 mx ASPMX5.GOOGLEMAIL.COM. 10 txt @ v=spf1 include:aspmx.googlemail.com ~all 別にWEBサーバーを契約し、そこでサイトの運営を行っているのですが、 そこのお問い合せフォームからのメール連絡が、googleApps側のアドレスにまったく届きません。 元々持っているgmailアカウントやプロバイダのメールアドレスには、正常に到達するので あとは、このDNS設定しか、考えられないのですがどうなんでしょうか? ちなみにプログラム側は、phpでmb_send_mailを利用しています。 メール送信を行っているWEBサーバーは、別ドメインと一緒に契約し、 メールヘッダーを確認すると、送信アドレスとヘッダー内の送信情報が相違している状態にはなっています。 何とか解決したいので、お知恵をかしてください。 宜しくお願い致します。

  • バリュードメイン Google APPS運用中です。お助け下さい。

    バリュードメイン Google APPS運用中です。お助け下さい。 ドメイン VD サイト さくら メール APPS の状況で運用していまして、 さくら内のメールフォームが独自ドメインのアドレスが使えないので、 こちらでサブドメインのメールアドレスを取得して 独自ドメインにGmail転送でサブを一本化統合する為、 APPS側のドメインエイリアスで独自ドメインの設定。 その為、サブドメインを取得しXREAに確認用HTMLファイルを置き、 DNS3行目の a subsub 22.22.222.22だけを追加しました。 (11.111.11.11はサクラ 22.22.222.22はXREA) ----------------- a @ 11.111.11.11 a www 11.111.11.11 a subsub 22.22.222.22 mx aspmx.l.google.com. 1 mx alt1.aspmx.l.google.com. 5 mx alt2.aspmx.l.google.com. 5 mx aspmx2.googlemail.com. 10 mx aspmx3.googlemail.com. 10 mx aspmx4.googlemail.com. 10 mx aspmx5.googlemail.com. 10 txt @ v=spf1 include:aspmx.googlemail.com ~all ----------------- XREAのpublic_html内に subsub.example.comのディレクトリ設置し、 index.htmlとgooglehostedservice.htmlを設置。 http://user.s2**.xrea.com/subsub.example.com/index.html http://user.s2**.xrea.com/subsub.example.com/googlehostedservice.html の表示可能確認。 XREAのドメインウェブの設定で Mainは、blank (example.comはDNSで向けているからここは、無しにしてます) subsub.example.comだけ入力(転送先・強制・NoDir 全部無しに) subsub.example.com開く←ここをクリックしても 「ドメインウェブが見つかりません」になります。 数時後に以下の状況。現在48時間以上経過しても同じです。。。 http://subsub.example.com/ 非表示(サーバが見つかりませんでした) http://subsub.example.com/index.html 表示。 http://subsub.example.com/googlehostedservice.html 表示。 APPS側のドメインの設定→ドメイン名→ドメイン エイリアスを追加 で、「 エイリアスの HTML を確認中...」のままです。 何か間違っているのでしょうか?

  • Sendmailの設定について

    こんにちは。sendmailをどのように変更すべきか教えていただきたいのですが、うまく説明できるか少し自信がないのですが、経緯を含めて説明します。 (環境:CentOS Linux 4.6 Sendmail version 8.13.1) ■以前 元々あるサイト(example.com)を運営しており、example.comドメインでメールの送受信もできていました。 この時点で、example.comサイト上のフォームからphpのmailコマンドで、example@example.comにメールを送信すれば、メーラーで受信ができました。 ■現在 今回、google appsを導入してDNSなどを変更し、example.comでのメール送受信は元のサーバではなく、google経由で送受信するようにしました。 これによって1つ問題が生じています。 1.【OK】メーラーによって別ドメイン aaaaaa@aaaaaaa.com から example@example.com への送信 →(その逆もOK) 2.【OK】example.comサイト上のフォームから別ドメイン aaaaaa@aaaaaaa.com への送信 3.【問題】example.comサイト上のフォームから同ドメイン example@example.comへの送信 →【appsで受信できない】※ただし、sendmailのユーザーメールボックスには入っている。 このように、3つ目のケースで受信できないという現象が起きています。 フォームのmailコマンドを実行すると、サーバー内から送信し、外(google apps)へメールが行かずに内部で受け取ってしまう感じです。 これは、sendmailが送る際に、DNSでgoogle appsに飛ばすと認識していないのだろうと思いますが、どうやったら設定できるのかが皆目検討がつきません。最初はqdsmtp(http://hal456.net/qdsmtp/)を入れてフォームの送信方法を変えようと思ったのですが、ssl通信ができない様でやっておりません。 どのようにすればよいのか、詳しく教えていただけると嬉しいです。 宜しくお願いします。 (※当方あまりこのような設定に詳しい方では無いため、私の操作するsendmailの設定画面のスクリーンショットを添付しますのでGUIでの変更方法で教えていただけると大変助かります。)

  • 不特定多数からのメールを振り分けてくれるソフト

    ある事務局のサイトを開設したいと思います。 サイトでは問い合わせ内容によって、件名を変えて メールの送信フォームを表示させる予定です。 開設サイトから送られてきた質問メールを 自動的に件名、もしくは送信者のアドレスで 自動的に振り分けてくれるメーラを探しています。 OEではちょっと大変だと思いますので。 無料のものより、なるべくなら有料のものを望みます。

  • googleにログインできません。

    cookieがOFFになっている、と表示され、ログインできない状態が続いています。もちろん、cookieの設定は確認済みで、グーグル上で説明されている通りの設定にしています。 また、エラー内容を確認するフローの後に出てくるフォームから、グーグルのサポートに問合せをしましたが、サポートと言うわけではないのでしょうか、フォーム送信後、”ご意見ありがとうございました。必ずしもフォローするわけではありません”と表示され、問合せを受け付けたような返信メールもありません。 ctrl+F5の強制読み込みなども試しましたが、変化はありません。 どなたか解決された方、ご回答をお願いします。