index » Scripts » phpContact

phpContact|どこでもフォームメール

概要

Ver.1.0~Ver.1.1.6において「_setMAIL」で設定した項目のメールアドレス型をチェックしていない不具合があります。 最新版にアップデートしてください。

自分で送信用のHTMLページを作れる、とっても便利なフォームメールスクリプト。

主な仕様と特徴

コピーメール機能は、CCではなく別メールとして送信していますのでテンプレートを書き換えれば自動返信メールの内容をユニークなものにする事も出来ます。

Ver1.2.0の変更点

必須フォーム機能および強制チェック機能($force_forms)が追加されました。
これはスクリプト内の設定部分で設定を行ってください。
この機能は、全ての作成フォームに対して作成必須にするフォームアイテム名を設定する事が可能です。(入力必須項目にする訳ではなく、この名前のフォームアイテム自体がない場合エラーとなります) 強制チェック項目は、もし不正なリクエストを行われてもこの項目だけは必ずチェックさせます。

$force_forms = array(
'フォームアイテム名' => array([強制チェック項目]),
);
$force_forms = array(
'name' => array('ckIN', 'setNAME'),
'email' => array('ckMAIL'),
'content' => array(), // 強制チェックをしない場合は空に
);

この機能を使用している場合、そのスクリプトをメーラーとして使用しているフォーム全てに対してこのフォームアイテムが必須となりますのでご注意ください。 たとえば、必須フォームに「content」という名前のフォームアイテムを設定している場合、全てのフォームで「content」という名前のフォームアイテムを実装しておく必要があります。(そのフォームに対しての入力・選択自体は、オプションや強制チェック設定に依存します)

Ver1.1.6の変更点

送信先メールアドレス設定の記述方法について変更があります。

$mailadd = array(
'0' => 'default@example.com',
'1' => 'address1@example.com',
);

今までは上記のような記述方法でしたが、新しいバージョンでは以下のように記述する必要があります。 これは、自動送信されるコピーメールの「このメールは、名前<メールアドレス>宛に送られたメールのコピーです」の部分で使用されます。 「tmpl_copy.txt」を修正する事で、表示される文字をメールアドレス・名前どちらかのみにする事も可能です。

$mailadd = array(
'0' => array('default@example.com', 'default'),
'1' => array('address1@example.com', 'address1'),
);

メールアドレス 名前 のペアになります。

また、Ver1.1.6から「_setNAME」オプションが追加されました。

<input type="text" name="data[お名前_setNAME][]" value="" />

このオプションが設定されている項目は、入力された文字はメールのFrom部分で「お名前<mailaddress>」と言う形式で使用する事が出来ます。 従来どおり、Fromはメールアドレスのみにする事も可能。設定項目の「FROMNAME」で選択可能。

Ver1.1の変更点

Ver1.1から、SELECTの記述方法が変更されています。現在、選択数制限オプションを使用している方は、移行する際一部書き換える必要がありますのでご注意ください。
記述方法は以下のとおりです。

Ver1.0 <input type="hidden" name="datacnf[SELECT][]" value="項目名,min,max" />
Ver1.1 <input type="hidden" name="datacnf[SELECT][項目名]" value="min,max" />

また、Ver1.1からラベル機能が追加されました。これは、項目名に日本語を使いたくない場合などに使用します。

項目名に日本語を使っている場合

<input type="text" name="data[メールアドレス_ckMAIL][]" value="" />

項目名を半角英数字にして日本語のラベルを付ける場合

<input type="text" name="data[email_ckMAIL][]" value="" />
<input type="hidden" name="datacnf[LABEL][email]" value="メールアドレス" />

古いブラウザなどではフォームのname部分に日本語が入ると、項目名部分が文字化けを起こす場合があるようです。 問題があるようならLABELオプションを使ってください。
LABELオプションを使った上で、SELECTオプションを使う場合、SELECTの項目名はラベルではなく項目名を指定してください。

デモ

ダウンロード