web-wizardry

インターネット・スマホ、そしてテレビにwebの魔法をWizardry

PHPで無料のメール問い合わせ(メールフォーム)機能を紹介

2015年01月26日 · PHP

phpで個人商用共にフリーで使用できるメール問い合わせ機能について紹介します。
こちらの内容は以前、webの学校でも多く人が使用していたり、問い合わせ機能を作りたいと要望があった内容です。

今回紹介するのは、「PHP工房」さんのメールフォーム(無料版)を紹介します。

カスタマイズ次第では色々と使い勝手良いフォームです。
基本的な使い方について紹介致します。

「PHP工房」さんのメールフォームをダウンロード

こちらからダウンロードできます
http://www.php-factory.net/mail/01.php

言語タイプが3種類用意されております。
mailform_1
サーバーなどにあった言語を選んでもらえば大丈夫です。
わからないという方は、「UTF-8」のバージョンで大丈夫かと思います。

ファイルダウンロードすると2つのファイルが開きます。
mailform_2
「思ったよりもすくない・・・」「ダウンロードするの間違えた?」って思うかもしれないのですが、2つのファイルで大丈夫です。

ローカル環境では動作しないので、レンタルサーバーへ移動させましょう

メールフォームを動作させてみる

デフォルトした状態で動作させるとどうなるか
1:contact.htmlにアクセスし、用意されている項目が出力される
mailform_3

2:入力した確認画面が出力される(必須入力なしも無視されます)
mailform_4

3:送信完了画面が出力される
mailform_5
戻るを押すと、php工房さんのページ遷移します

という状態が初期の状態です。
メールも届かない状態です。
カスタマイズをしていきましょう!

メールアドレスの登録

初期状態ではメールアドレスが登録されておりません。
受信したいメールアドレスを登録しましょう。

$to = "xxxxxxxxxx@xxx.xxx";

を変更します
メールが届く様になります。
メールタイトルには「ホームページのお問い合わせ」というタイトルで受信されていると思います
※迷惑メールもチェックしましょう

受信タイトルの変更

上記にも「ホームページのお問い合わせ」と書かれたタイトルとなっておりますが、main.phpの項目にある内容を変更します

$subject = "ホームページのお問い合わせ";

を変更します

$subject = "○○サイトのお問い合わせが届きました";

タイトルが変更されたかと思います。

必須項目を有効

必須と書かれていた項目が無視されておりました。
有効にするにはmain.phpの項目にある内容を変更します。

$requireCheck = 0;

$requireCheck = 1;

に変更します。
確認画面にページ遷移したときに入力にミスがあると以下の内容が表示されるようになります。
mailform_6
エラー表示もカスタマイズが可能です。(初級では難しいので今回は割愛します)

必須項目を追加

現在は名前とメールだけが必須項目としておりますが、
もっと追加したいという要望があると思います。
必須項目を追加したい場合は
htmlに書かれている「name」を使用します、お問い合わせ内容を必須にする場合
html

<tr>
  <th>お問い合わせ内容<br /></th>
  <td><textarea name="お問い合わせ内容" cols="50" rows="5"></textarea></td>
</tr>

main.phpを変更

$require = array('お名前','Email');

にnameで書かれているお問い合わせ内容とシングルコーテーションを追加します。

$require = array('お名前','Email','お問い合わせ内容');

お問い合わせ内容も必須項目となりました。
確認画面のミスでもエラーが自動的に追加されました。
mailform_7

問い合わせ者にメールを送る

問い合わせ者にメールを送る設定は初期状態ではOFFになっております。

$remail = 0;

$remail = 1;

に変更をおこないます
問い合わせ者にも自動で送った内容を受信することができます。

自動返信時の設定について

問い合わせ者のメールにformにメールアドレスのまま表記されておりますが変更する場合は以下の箇所を修正します

$refrom_name = "";

タイトルを変更する場合は

$re_subject = "送信ありがとうございました";

メール内容に○○様と表示がされますその内容を変更する場合

$dsp_name = 'お名前';

これを無くすと○○様の表記がなくなります。

メール冒頭の文章には以下の内容が初期で入っております。
内容を変更する場合はこちらを編集してください。

//自動返信メールの冒頭の文言 ※日本語部分のみ変更可
$remail_text = <<< TEXT

お問い合わせありがとうございました。
早急にご返信致しますので今しばらくお待ちください。

送信内容は以下になります。

TEXT;

署名も送りたい場合は

$mailFooterDsp = 0;

$mailFooterDsp = 1;

に変更し続けて、
署名の内容が初期で入っておりますので、
内容を変更する場合はこちらを編集してください。

$mailSignature = <<< FOOTER

──────────────────────
株式会社○○○○ 佐藤太郎
〒150-XXXX 東京都○○区○○  ○○ビル○F 
TEL:03- XXXX - XXXX  FAX:03- XXXX - XXXX
携帯:090- XXXX - XXXX  
E-mail:xxxx@xxxx.com
URL: http://www.php-factory.net/
──────────────────────

ページ遷移先の設定

送信完了後のトップページへ戻るボタンを押すと、PHP工房さんのページへ遷移してしまいます。
ここを変更するには、

$site_top = "http://www.php-factory.net/";

URLをトップページのURLに変更する必要があります。

簡易的なページへ遷移するだけでなく、ちゃんとしたサンクスメールを作成する場合は
以下の設定をおこないます

$jumpPage = 0;
$thanksPage = "http://xxx.xxxxxxxxx/thanks.html";

0を1に変更して、読みにいかせるURLを記述させます。

簡易的なページもきちんとしたページに変更することができます

簡単ではありましたが、PHP工房さんのフリーフォームについて紹介しました。
フリーですが、色々と設定することができ、わかりやすい設定方法でした。
確認画面などはカスタマイズもしくはjQueryなどでプラスすればもっといい感じになるかと思います

フリーのフォームを探している方はこちらの内容を使用をオススメします。


Page top