問い合わせページはよく利用されるコンテンツの一つですが、この仕組みを簡単に解説します。
問い合わせページは情報の入力(html)とメールによる配信(php)からなります。多くはメールの配信が成功したことをweb上に表示する機能があります。mailが配信されるためには利用しているサーバ上でmail配信サーバが動いている必要があります。SMTP(Simple Mail Transfer Protocol)が利用されます。
最もgoogle form を利用して問い合わせを行うこともできますが、入力情報をgoogle formで集約するのでwebのデータベースには残りません。純粋にテキストだけであれば問題ありませんが、例えば商品名や数量などを入れた場合にこれでは不便です。考え方によってはspreadssheetで一元的に管理できるので良いという考え方もあります。いずれにどのようにデータを管理するかを決めて構築することが必要かもしれません。
トライコーンlabのページを参考にしました。
キーになる点は以下です。
Formタグ:お問い合わせフォームとして位置づける;action(送信先), method(データ転送方法)
php連携例:<form action="./test_mail.php" method="post">
(test_mail.phpに以下に説明するphpなどを指定して phpを実行させることで連携します)(TECK PLAYを参照)
Inputタグ :type:入力内容の形式の指定、name:入力された内容の項目分け
labeタグ:項目名と入力欄が連動 (imputの間に挿入し入力欄と項目名が紐づけ)
textareaタグ:テキストエリアを表示
selectタグ:セレクトボックスの外枠としての機能を果たす
optionタグ:セレクトボックス内の各選択肢を作成する(「value」属性を用いると情報をPCを残せる?)
buttonタグ:buttonタグを使えば送信ボタンを作成(inputタグより自由度が高い) タグ内に属性「type」を使い「submit」を指定することで、送信フォームボタンを表示する
ここも同じトライコーンlabのページを参考にしました。
ユーザーがメールフォームでの入力を完了した際に、その通知をユーザーや運営者に対してメール送信するには「mail関数」や「mb_send_mail関数」などが利用されます。
mail関数:メール送信を行う。「宛先」「件名」「メッセージ」「ヘッダ」の4項目で構成される。以下サンプルコードです(トライコーンlabより引用)
<?php
$to=”to@example.com”;
$subject=”TEST”;
$message=”This is a Test.”;
$headers=”From:from@example.com”;
mail($to, $subject, $message, $headers);
?>
もしくは、次の関数を利用してメール送信が可能です。
mb_send_mail関数:mb_send_mail関数を使うと日本語での送信が可能となります。
※mail関数では、UTF-8などを指定することが必要になる。
レンタルサーバ上で作成したメールアドレスを利用する
mb_send_mail()関数を用いる。
ご利用されているサーバの上の利用案内などをご確認いただくことが必要です。送信先はgmailでも設定できるようですが、少し手間がかかるので、サーバ上のメールアドレスを利用することをお勧めします。
mb_send_mail()関数についての詳細は、以下のページを参考にしてみてください。ヘッダー情報(header)について詳しく記載されています。
Quiita PHPで日本語のメールを送信する時のおさらい
※mail関数の前にUTF -8を指定した例(未確認です)
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
$headers .= "From: no-reply@hka.jp.net\r\n";
mail($_SESSION['email'], '問い合わせりがとうございます', $message2customer, $headers);
mail('testacount@gmail.com', 'HPより問い合わせがあります。', $message, $headers);
※サンプルコードはトライコーンlabのページを参考にしてください。
mail送信に利用されるサーバ機能としてはSMTPがあります。SMTPを利用するにはphp.iniを変更する必要があります。ご自分で利用されているサーバ上の SMTPはあらかじめ確認しておくことが必要です。
(TECK PLAYを参照)
SMTP(Simple Mail Transfer Protocol)は、簡易的なメール送信プロトコルで、迷惑メールやスパム対策強化になるようです。
例:
[mail function]
; http://php.net/smtp
SMTP = smtp.xxxxx.com
; http://php.net/smtp-port
smtp_port = 587
smtpを利用したアプリケーションにSendmailがあります。サーバによっては 設定済みで利用可能です (例;さくらインターネットのレンタルサーバ)。