質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

2回答

2886閲覧

アンケートフォームの結果をメールで受信したい

webshosinsha

総合スコア7

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2017/05/22 07:45

編集2017/05/22 08:26

下記のコードでアンケートフォームの結果をメール受信したいと考えています。

実現したいことは、
・送信者の方にはメールを起動させない(画面上で送信)
・送信完了画面は表示させない
・結果をメールで受信する

実現させるためのどのようなPHPコードを書けばよいのでしょうか?
アドバイスや参考になるサイトなどあればご教授いただければと思います。
ためしに書いてみましたが、ローカルで動作確認できず、あっているのか分かりません。
よろしくお願いいたします。

HTML

1<section class="box18"> 2 <form action="sendmail.php" method="post" class="servey"> 3 <h3>アンケートです。</h3> 4 <p class="question">何色をお探しでしたか?</p> 5 <div class="answer"> 6 <label><input type="checkbox" name="color" value="青">青</label> 7 <label><input type="checkbox" name="color" value="赤">赤</label> 8 <label><input type="checkbox" name="color" value="黄">黄</label> 9 <label><input type="checkbox" name="color" value="その他">その他:<input type="text" name="color" id="colortext" value=""></label> 10 </div> 11 <p class="question">欲しい色はありましたか?</p> 12 <div class="answer"> 13 <input type="radio" name="color2" value="はい">はい 14 <input type="radio" name="color2" value="いいえ">いいえ 15 </div> 16 <p class="question">アンケートは以上です。よろしければご意見をお聞かせください!</p> 17 <div class="answer"> 18 <textarea name="textarea1"></textarea><br /> 19 <input type="submit" name="button1" value="送信" /> 20 <div class="answer"> 21 <h3>ご協力ありがとうございました!</h3> 22 </div> 23 </div> 24 </form> 25 </section>

PHP

1 2<?php 3header("Content-Type:text/html; charset=UTF-8"); 4mb_language("Japanese"); 5mb_internal_encoding("UTF-8"); 6 7 $to="aaaaa@xxxxx.com"; 8 $color=$_POST['color']; 9 $color2=$_POST['color2']; 10 $textarea=$_POST['textarea1']; 11 12 mb_send_mail($to,$color,$color2,$textarea1); 13?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/05/22 07:56

sendmail.phpのコードも提示してください。でないと丸投げですよ。
guest

回答2

0

質問を見る限り、必要なスキルが大分足りていません。
実装が目的であれば、google フォーム等のサービスを利用することを検討してみては?

** 追記 **
ざっくりですが、以下のような機能の実装が必要となります。
・JavaScript によるフォームの読み取り
・JavaScript(ajax 等) によるフォームの投稿
・PHP での POST 受取とその検証(投稿データの正当性 / CSRF 対策等)
・PHP によるメールの送出
・PHP による結果の返信
・JavaScript による返信結果の評価
・返信結果の評価により、挙動制御(submit ボタンの disable 化 / エラーメッセージの表示等)

投稿2017/05/22 08:47

編集2017/05/22 08:58
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

sendmail.phpの中で、mail()関数を使って送信するプログラムを書けばいいでしょう

ただしサーバーOSによってsmtpサーバーの指定方法が違います。
平準化するためには少し古い技術ですがPEAR::Mailを利用してください

投稿2017/05/22 07:55

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

webshosinsha

2017/05/22 08:27

mb_send_mailで書いてみたものですが、どうでしょうか?
yambejp

2017/05/22 08:34 編集

mb_send_mailはmail()を半自動的にマルチバイト対応に拡張したものなので 想定外の動きをすることが多く、経験的にご利用はお勧めできません。 (サーバーの設定はmail()関数と同等です)
webshosinsha

2017/05/22 08:37

ありがとうございます。 基本的にはmb_send_mailの部分をmailに書き換えれば大丈夫でしょうか? 調べても記述に差があるようには思わなかったので・・・。
yambejp

2017/05/22 08:44

回答の際に書いたとおりmail関数はOSによってサーバー指定方法が違います ためしにmail関数で送ってみてエラーがでないなら 問題なくサーバーの設定がされているのですが、送れない場合は そうとうハマると思います。 ご提案したPEAR::Mailをご利用される気がないのであれば、mail()関数で トライアンドエラーで調整ください。 なおmb_send_mailも場合によってはそのまま問題なく遅れる場合もあるので 安易にメールを送るだけでよいなら、試してみる価値はあります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問