ネット上のあるフォームの氏名欄に氏名を、メルアド欄にメルアドを、ご意見欄にご意見をなどを入力して
送信ボタンをクリックすると、そのルフォームの設置者あてに自動的に
氏名、メルアド、ご意見がメールの形式で届けられる、
また入力者自身に対して「ご意見受け付けました」の意味で、入力内容が自動返信される、
という便利な機能を持ったフォームがあります。
一般に「メールフォーム」などと呼ばれている機能、サービスです。
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だけでは作れません」という場合、他にどんな言語が必要でしょうか?
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.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」とかで検索をかけてみるといくつも出てくると思います。
上で述べた「なんじゃかんじゃ」するプログラム部分を作ってくれているものです。
無料でダウンロードできるものもありますので、試してみて、ご自身にあったものを使ってみるとよいと思います。
フォームって身近ですが、なにがどうなっているのか不思議なものでもありますよね。
No.6
- 回答日時:
例えば、お問い合わせのフォームだとすると、
>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です。
No.5
- 回答日時:
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)の流れが大原則です。
ピンボケ回答かもしれませんが参考まで。(_ _)
No.4
- 回答日時:
補足に対して、
だ、か、ら・・・、htmlではロジックは組めないのです。
サーバ側のプログラム内で行なう。
No.3
- 回答日時:
Q1
フォーム自体はhtmlのform文で作ります。
table文と組み合わせたりもしますが、htmlソース内で処理します。
Q2
実際にフォームの内容を解析して送信メールを作っているのは、サーバに置いた別プログラムで行います。
第3者にメアドが漏れない様にする為に、その様にします。
Q1でhtmlのform文をつくる時、action=と言う属性があり、そこに、サーバで動くプログラム名を指定して置きます。
Q3
Q2の別プログラムでその様に作ります。
プログラム言語はPHPかJavascriptが多く使われます。
htmlは宣言型言語である為、if then elseなど、ロジックを組めません。
No.2
- 回答日時:
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サーバーは受け取たこれらの値をそれぞれ特定の名前が付いた環境変数にセットしますので、プログラムはその環境変数を直接参照したり、使用している言語の実行系が持つ機能を使って取得したリします。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(メールソフト・メールサービス) 大阪市プレミアム付き商品券のweb申し込みで楽天モバイルのEメールだと返信メールが届かない 2 2022/09/19 17:08
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(コンピューター・テクノロジー) 企業の問い合わせフォームに、名前もアドレスも嘘の書き込みをしました。 身元はバレますか? スマホから 1 2022/06/18 17:51
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Gmail 会社のメルアドから個人のGmailアドレスに送ったら、「このメールにはご注意ください」と警告が出た 2 2022/05/26 15:12
- 求人情報・採用情報 今日、ホテルのアルバイトに、タウンワークから応募しました。 すると、会社からGメールが届き、事前登録 1 2022/03/31 23:40
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
送信ボタン押下時に値が未入力...
-
mailtoについて
-
<a href=**?***=***>をGET方式で
-
複数のフォームを一括で送信す...
-
スマートフォンサイトからのメ...
-
1アクションでPOST・GET、両方...
-
メールフォームを開いて、任意...
-
「リセット」ボタンを「画像」...
-
type="hidden"を使って時刻を送信
-
submitをボタン以外にするには
-
送信フォームを2つ用意する方法
-
フォームのテキストエリアをク...
-
【html】)パスワード認証フォー...
-
フォームの上下の余白について
-
見積りが自動でできるメールフ...
-
HTML-cgiを使わないメール...
-
プルダウンメニュー項目のフォ...
-
プルダウンの切り替えについて
-
セレクトボックスを切り替える...
-
同じ名前が複数あるインプット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitをボタン以外にするには
-
1アクションでPOST・GET、両方...
-
送信ボタン押下時に値が未入力...
-
複数のフォームを一括で送信す...
-
URL パラメータを使ってフォー...
-
【html】)パスワード認証フォー...
-
フォーム要素以外にもname属性...
-
リンクをクリックした時にform...
-
GETをPOSTに変更したところ 送...
-
checkboxを「変更不可」にでき...
-
長文のmailtoの使い方
-
type="hidden"を使って時刻を送信
-
フォームに入力した値をURLに付...
-
<a href=**?***=***>をGET方式で
-
submitの処理の後別の画面を表...
-
</form>タグを使用すると強制的...
-
お問い合わせフォームの送信後...
-
mailtoについて
-
ラジオボタンで選択した項目に...
-
form actionでmailtoを指定する...
おすすめ情報
Q3につき、質問文が抜けていましたので補足します。
メールフォームの利用時の環境(IPアドレス、ホスト名、User-Agent など)を自動取得して、
メールフォーム管理者にメールフォームの入力内容と一緒に送信してくれる機能は
HTML言語だけで出来ますか?