アプリ版:「スタンプのみでお礼する」機能のリリースについて

ネット上のあるフォームの氏名欄に氏名を、メルアド欄にメルアドを、ご意見欄にご意見をなどを入力して
送信ボタンをクリックすると、そのルフォームの設置者あてに自動的に
氏名、メルアド、ご意見がメールの形式で届けられる、
また入力者自身に対して「ご意見受け付けました」の意味で、入力内容が自動返信される、
という便利な機能を持ったフォームがあります。

一般に「メールフォーム」などと呼ばれている機能、サービスです。

Q1 こういったメールフォームはHTML言語だけで作成できるのでしょうか?

Q2
引続き質問します
またメールフォームの中には「そのメールフォームの内容が、どのメルアド宛てに届くのか?」
が判らないように、データの送信先アドレスを隠している場合があります。(右クリックしてソースを表示、を行っても、そのソースコード上には送信先アドレスが記述されていなかったりあるいは暗号化されているなど)

こういった「送信先アドレスの隠匿、あるいは暗号化」はHTML言語のみで出来るのでしょうか?

Q3 引続き質問します。
またメールフォームの中には、そのメールフォームの利用時の環境(IPアドレス、ホスト名、User-Agent など)を自動取得して、メールフォーム管理者にメールフォームの入力内容と一緒に送信してくれるものもあります。

IPアドレス、ホスト名、User-Agentの例)
IPアドレス=***.164.18.***
ホスト名=p91****-ipngn****hodogaya.kanagawa.ocn.ne.jp
User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/51.0.2704.103 Safari/537.36

(ホンモノ情報を完全につかってしまうとまずいので、一部*で伏せました)

Q1,Q2,Q3とも「HTMLだけでは作れません」という場合、他にどんな言語が必要でしょうか?

質問者からの補足コメント

  • どう思う?

    Q3につき、質問文が抜けていましたので補足します。

    メールフォームの利用時の環境(IPアドレス、ホスト名、User-Agent など)を自動取得して、
    メールフォーム管理者にメールフォームの入力内容と一緒に送信してくれる機能は
    HTML言語だけで出来ますか?

      補足日時:2017/12/08 13:15

A 回答 (7件)

もうすこし噛み砕いてみます。


フォームにはCGI(PerlとかPHPが代表的)が必要です。
ソースを見ると、
<form action="xxxxxx/xxxxx/xx.php">
とか
<form action="xxxxxx/xxxxx/xx.cgi">
とか
<form action="xxxxxx/xxxxx/xx.jsp">
とかとか書いてある部分が見つかるはずです。
これらは
「このフォームに記述された内容を、送信ボタン(submitボタンもあるはずです)を押されたらxxxxxx/xxxxx/xx.phpへ送りますよ」
という働きをするものです。
例の
xxxxxx/xxxxx/xx.php
はプログラムが置いてある場所です。
プログラムはphp だろうがcgiだろうがjspだろうが、情報を受け取れればなんでもよいです。今のところPHPが扱いやすいでしょう。
そこへ送られたフォームの内容をなんじゃかんじゃして、メールを返したり、データベースに収めたりをするわけです。
仕組みというのはこんな感じです。

もしフォームの機能を設置してみたい、という場合には、
「フォーム php」とか「フォーム cgi」とかで検索をかけてみるといくつも出てくると思います。
上で述べた「なんじゃかんじゃ」するプログラム部分を作ってくれているものです。
無料でダウンロードできるものもありますので、試してみて、ご自身にあったものを使ってみるとよいと思います。

フォームって身近ですが、なにがどうなっているのか不思議なものでもありますよね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:58

例えば、お問い合わせのフォームだとすると、


>Q1,
ユーザーが書いた内容をオーナーにメール送信するだけならHTMLで可能です。
これは、ユーザーのメールソフトを立ち上げて、一部の内容(送信先/項目)を表示し、補助するだけです。
また、HTMLでのメールアクションは、ユーザー環境(ソフト)などで不具合もあります。
メールソフトを立ち上げるのですから、一般のメール同様で、送信先のメールアドレスが記入されてしまいます・・・

そういった不便さがあるので、
HTMLのみでのメールフォームは非奨励になってます。
(HTMLのメールフォームは、個人サイトで良く見ますが、多くの企業は利用していないでしょう)
という事で、
HTMLでは表示ページ/表示項目を作るだけで、
メールフォームCGIを利用するのが一般的です。
文字制限/メールの誤記判定/メールの自動返信/User-Agent /など
内容を処理したり、ユーザーに返信したりする内部プログラム(CGI)をサーバーに置いて、処理しないといけません。sendメールも必要です。

流れ:
HTMLページに入力→送信ボタン→サーバー内で項目や追加等を処理→sendメールで送信→受信

----------
ウチのメールフォームCGIは、
・主に「項目(件名)選択/お名前/電話番号/メールアドレス/内容」ですが、
 必須記入項目を設定して、※「記入漏れがあります」のお知らせ
 それ以外に任意/無限に項目を増やすことが出来ます。
・NGワード設定・CC/BCC追加可能・ログを記録
・メールアドレスや電話番号の判定
・オーナーにメール送信
・設定次第で、ユーザーに自動返信メールを送信
 または、ユーザーがチェックで自動返信をさせる事もできます。

・下部にユーザー情報を追加/任意(サーバーで取得できる情報を表示できる)
 Date: 2017/12/10(日) 21:40
 Referer: http://www.~~~/~~~.html
 IP: ***.**.**.***
 Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

・ウェブページに「ありがとうございます。送信完了」のような表示
-------------

>Q2,Q3,Q3補足
A,
HTMLだけでは出来ません!

以前はPerl、近年はPHPが主だと思います。
WordPressでもメールフォームは、contactform7です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:58

No.2です。



補足に書かれたQ3はQ1と重複です。
お察ししますにWebシステムの基本を理解されておられないご様子です。
まず、HTMLはHyperText Markup Languageの略です。「ハイパーテキストを記述するためのマークアップ言語」、つまり「複数の文書を結びつける(←リンクを貼る)ことが出来る文書を作成するための言語」です。
HTMLの中にJavascriptなどのスクリプト言語で記述された機能が組み込まれていたとしても、それはHTMLで示される画面に一定の動き(動作機能)を与えるための物でしかありません。
またHTMLとそこに含まれるスクリプトは全てWebブラウザ上で動作し、それが動作する端末上のローカルデータを加工したり、端末上には有るが、Webブラウザ自身は持たない機能を動かしたりすることは(一般的には)ありません。例えば「端末から直接メールを送信する」といった事です。

ご質問にあるメールフォームとは各種メーカーのWebサイト等によくある「メールでの問い合わせ機能」のことだと理解しますが、これはNo.1の回答でも触れました通り、Webブラウザに表示した入力画面(発信者のメールアドレスや問い合わせ本文など)で入力された内容をWebサーバー上の特定プログラムに渡すだけのものです。
この画面を操作した利用者に「受け付けました」メールを返すのはこのプログラムです。
このプログラムには一般的に問い合わせ処理担当部門へ通知する機能がありますが、それをメールで実現するか、担当部門で常に表示しているある画面に自動的に問い合わせ項目が追加されるようにするかといった所はその組織次第です。一般論は有りません。
その機能を自作するか、汎用製品を使うか、フリーソフトを使うかも任意です。

なお、蛇足ではありますが。。。
Webサーバー側に置くプログラムを記述する言語は何種類もありますが、一部の言語は開発効率を高めるためにWebブラウザ側から受け取った画面で入力された情報を処理する機能と、処理した結果Webブラウザ側に送出するHTMLなどを一体として記述できる言語仕様となっているものがあります。
それはWebシステムの基本をよく理解している者にとっては便利なのですが、その言語を使ったプログラム開発から入った者の中には、、、

(1) ある画面にフォームが設定され入力項目が有り、その画面をWebブラウザに表示している利用者が入力を行ってSubmitする。(←実行とか送信とかいったボタンを押す)
(2) するとWebブラウザは画面入力された内容をフォームに定義されたURLへ送信する。
(3) Webブラウザからの送信を受け取ったWebサーバーはURLに指定されたプログラムを呼び出す
(4) 呼び出されたプログラムは画面で入力され送信されて来たデータと、必要によってはWebブラウザが自動的に付加して来た端末側の情報(ホスト名やOSの種類、Webブラウザの種類など)の情報を使って処理を行い、その結果Webブラウザに表示される画面のHTMLを生成して送出する。

という最も基本的な仕組みをあまり感じ取っていない者がいたりします。
長くWebシステムの開発にたずさわりましたが、そう感じる社員や外注者を目にしました。
Webサーバー側が提供する(=実現する)機能がそうあれ、WebブラウザをユーザインターフェースとするWebシステムではこの(1)~(4)の流れが大原則です。

ピンボケ回答かもしれませんが参考まで。(_ _)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:58

補足に対して、


だ、か、ら・・・、htmlではロジックは組めないのです。

サーバ側のプログラム内で行なう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:58

Q1


フォーム自体はhtmlのform文で作ります。
table文と組み合わせたりもしますが、htmlソース内で処理します。

Q2
実際にフォームの内容を解析して送信メールを作っているのは、サーバに置いた別プログラムで行います。
第3者にメアドが漏れない様にする為に、その様にします。

Q1でhtmlのform文をつくる時、action=と言う属性があり、そこに、サーバで動くプログラム名を指定して置きます。

Q3
Q2の別プログラムでその様に作ります。

プログラム言語はPHPかJavascriptが多く使われます。
htmlは宣言型言語である為、if then elseなど、ロジックを組めません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:58

Q1:


出来ません。Webサーバ側にメール作成画面での入力結果を受けて処理してくれるプロ蔵mjが必要です。実装言語は標準出力を扱える言語で有れば何でもかまいません。C言語、Java、Perl、PHPなどなど。
なお、HTMLはWebの画面デザインを決める言語でHTMLで書かれた内容を解釈し処理するのはWebブラウザです。Webサーバーは静的コンテンツであるHTMLファイルを保管(保持)したり、HTMLを生成&(Webブラウザへ向けて)送信するWebプログラムを保管(保持)したりするだけでHTMLの内容を解釈して処理する機能は有しません。

Q2:
メール内容を書き込むWeb画面には入力された内容を渡す先のURLがあればよいだけです。
書き込まれた内容がWebサーバ上のプログラムによって実際にメールとして連絡先へ届けられるのかどうかはWebサーバ上のプログラムの機能によります。

Q3:
状況を示しただけで質問内容がありません。
ちなみに書かれている項目はWebブラウザがサーバへ通信を行う際に常に付加しているものです。
Webブラウザに表示している画面でSubmitを行いWebサーバー上のプログラムを呼び出した場合、起動されたプログラムはこれらの値を参照出来ます。ebサーバーは受け取たこれらの値をそれぞれ特定の名前が付いた環境変数にセットしますので、プログラムはその環境変数を直接参照したり、使用している言語の実行系が持つ機能を使って取得したリします。

参考まで。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:59

PHPが必須です。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2017/12/11 19:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!