フォームメール機能の使い方

2000/03/31

  1. 基本的な使い方(このファイル)
  2. 内容確認用HTMLの作り方
  3. 複数のデータに対する簡単な書き方
  4. FAQ

基本

 フォームメール機能とは、ブラウザに表示されたフォーム文からメールを作成 して送信する機能のことである。フォーム文で利用するテキスト文のみならず、 ラジオボタンやチェックボタンに応じてメールを作成することができる。

 まずは、次のサンプル1に移動し、自分のメール アドレスと適当な文字列を入れてメールを送信してみて下さい。感じがつかめると 思います。

 さて、この機能を利用するには、フォーム文を埋め込んだHTMLファイルと、 それと同じディレクトリにメールのベースファイルが必要である。 上記サンプルの場合には、sample1.htmlmail.txtが設定ベースファイルである。

フォームファイル
(sample1.html)
置換元ファイル
(mail.txt)
<html>
<head><title>メールサンプル</title></head>
<body bgcolor=white>

<h2>メールサンプルその1</h2>

<form method="post" action="/php-bin/mail.php">
<input type=hidden name="BASEFILE" value="mail.txt">
<input type=hidden name="RETURL" value="thanks.html">

<h3>問い合わせ</h3>
電子メール送信先:<input type=text name="SENDTO">
<br>
名前:<input type=text name="USER">
<br>
タイトル:<input type=text name="TITLE">
<br>
<select name="SEL">
  <option value="Select_1">選択1
  <option value="Select_2" selected>選択2
  <option value="Select_3">選択3
</select>
<br>
<input type=radio name="RADIO" value="YES">YES<br>
<input type=radio name="RADIO" value="NO" checked>NO<br>
<br>
<input type=checkbox name="CHECK1" checked>チェック1
<input type=checkbox name="CHECK2">チェック2
<br>
<textarea name="COMMENT" cols=60 rows=5>
</textarea>
<br>
<hr>
<input type="submit" value="SEND!">

</html>
</body>
</html>
From: postmaster@maap.net
To: {SENDTO:EMAIL}
Subject: {TITLE}

{USER:NOTNULL}さん、こんにちわ。

プルダウンで{SEL}が選択されました。
ラジオボタンは{RADIO}です。

{CHECK1:IF}チェック1はonです。
{CHECK2:IF}チェック2はonです。

コメントは、以下のとおりです。
------
{COMMENT}
------
ここまで。

 まずは、フォームファイルから。これは全く通常通りのフォーマットである。 市販ツールで作成していただいても構わない(多分漢字コードも問わないはずだ)。 ただし、以下の点には注意してほしい。
 つぎに、置換のベースファイル。こちらは、メールにしたいテキストファイル をテキストエディタなどで作成しておいてください。世の中のメールはJIS漢字 コードでやりとりされますが、このファイルは自動的にコード変換しますので、 SJISやEUC漢字コードでも構いません。

 ぱっと見てわかっていただけると思いますが、フォーム文で入力された文字に 置き換えたい部分は{××}としておきます。××は、左のフォーム文で NAME="××"としているものが代入されます。ですが、中には{××:△△}という 記述もあることにお気づきでしょう。この△△がオプション指定子になります。

 現在、オプション指定子には以下のものがあります(要望があれば追加することも 検討します)。
NOTNULL 空欄だとエラーになるもの(スペース1個でもエラーにはなりませんので注意してください)
EMAIL 電子メール形式。@以降の文字をきりだし、DNSにそのメールサーバが存在するかをチェックしているので不正防止にある程度の効果あり。
IF チェックボックスがオン、あるいはテキストに文字が入力された時だけ、 その対象行をメール送信する。
(例)CHECK1とCHECK2にIFオプションがついている。このうちCHECK2にだけチェック が入った時、「CHECK1はonです」は送信されず、「CHECK2はonです」は送信される。
このオプションがつくと、その変数は値が代入されているかを見るためだけに使われ、 何の値が入力されたかというものまでは展開されないので注意したい。例えば、 「こんにちわ、{USER:IF}さん」というので、USERに田中一郎が入っていたとしても、 このままでは「こんにちわ、さん」と送信されてしまう。名前をきちんと入れたい ときには、「こんにちわ、{USER:IF}{USER}さん」と2回書く。
IFNOT 上記IFの逆。サンプル2でその使い方が出てくるが、チェックする/しないなどで 表示する文章を変更したいときに便利。

基本確認HTML表示複数行対応FAQ