設置方法

主な手順

  1. ZIPファイルをダウンロード後、解凍する
  2. 設置したいサイトのローカルディレクトリにzeromailフォルダを移動
  3. テンプレートファイル(contact.html、check.php、completion.html、error.php)をお好みに改変
  4. 必要があればAjaxパックとかAdminパックをダウンロードして設置
  5. init.phpをテキストエディタで開いて設定する
  6. サーバーにアップロード後、contact.htmlにアクセスして送信が出来れば設置完了

スキンとして配布しているCSS(ZIP内のzeromail.php含む)は、
zeromailクラスを定義している行より上を削除すればそのまま使えると思いますが、
設置するサイトで使用しているスタイルシートの影響を受けることがあります。

分からないことや困ったことがある時はコメントメールTwitterなどでお寄せください。
(長くなりそうなときはメールをご利用ください。バグと思われる挙動は動作環境が必要になる場合があります。)

ファイル構成

配布しているZIPに入っているファイルの説明。バージョンや使う機能によって増減します。

Core

最も重要なファイルです。文字コードは初期のUTF-8から変更しないでください。

ファイル名 概要
init.php 設定ファイル。超必須。
zeromail.php 本体
confirm.php 確認画面出力用

Template

ファイル名や文字コードが変更できます。文字コードはUTF-8,EUC-JP,Shift-JISのいずれかで。

ファイル名 概要
contact.html メールフォーム。自由にデザインできます
zeromail.css サンプルのスタイルシート。エラーのスタイルとかも入ってます。
check.php 確認画面
error.php エラー画面(v1.2以下はinit.php内の関数)
completion.html 送信完了画面

Admin Pack

管理画面機能を使わない場合は必要ありません。

ファイル・ディレクトリ名 概要
admin/ 初期ディレクトリ名
index.php 管理画面のトップページ
log.php ログファイル(名前・設置場所変更可)
template.php 管理画面のテンプレート。文字コードはinitの文字コード設定と同じにする。

Ajax Pack

Ajax送信機能を使わない場合は必要ありません。

ファイル・ディレクトリ名 概要
contact_ajax.html 下記3ファイルが動作するように設定されたフォーム
lib/ 下記3ファイルが入れてある初期ディレクトリ名
mootools-1.2.4-core.js MooToolsのコアファイル
mootools-formpack.js Form.Validator、Form.Requestほか色々必要なものをまとめてある
zeromail-ajax.js 動作に関する設定とソース

デザインとコアが切り離されてるので、レイアウトや入力項目は自由に変えることができます。
入力フォーム・確認画面・送信完了画面はコアとは別のディレクトリでも動作します。

必要に応じて設定や各テンプレートを変更してください。

ini.phpの設定

設定箇所はファイル内に書いてあるのでそちらを見ながら設定してください。
重要な点だけ解説します。

出力文字コード設定

入力画面と確認画面と同じ文字コードを設定してください。デフォルトはUTF-8です。

メール文字コード設定 ver1.4.7

Ver1.4.7で追加しました。メールの文字コードが切り替わります。デフォルトはjaです。

ja → 日本国内向け。ISO-2022-JPで送信
uni → マルチバイト文字を含む言語向け。UTF-8で送信。

半角英数の名前の使用

Ver0.8で追加しました。trueにした場合、
予約済みname値の名前確認全てにおいて、日本語の有無をチェックしなくなります。

inputのnameとその名称設定

入力フォームにあるフォーム部品を全て記入してください。
連想配列の書式'name'=>'名称'で1セットになります。一番最後には,をつけないこと。
名称は確認画面で表示される名前で、nameの部分はフォーム部品のname値です。
ここに書かなかったものは確認画面で表示されず、メール本文に記述されません。並び順もそのまま反映されます。

管理者機能を有効にしている場合は、ここに設定されている項目をログとして記録します。

未入力項目の送信スキップ ver1.4.7

この設定を true にすると、入力されていない項目を確認画面やメール本文へ出力しなくなります。
申し込みフォームや予約フォームなど、多数設定されている項目の一部にしか入力されない場合に使用すると
画面がスッキリする効果があります。

管理者宛メール件名と自動返信用ヘッダー・フッターのタグ置換 ver1.4.5

管理者宛メール件名(MAILSUBJECT)と、返信メールに添えるメッセージ($replycomment)&署名($replyfoot)に
inputのnameとその名称設定で設定したname値を{}(中括弧)で括って埋め込むと、
その部分をユーザーが入力した値に置換してメールを送信します。

Example

define('MAILSUBJECT','{name}様からお問い合わせがありました');

$replycomment=<<<EOM
【このメールはシステムからの自動返信です】

{name}様、お問い合わせありがとうございました。
以下の内容で送信いたしました。
────────────────────────────────────
EOM;

スパム対策設定

対ロボット用なので、手動による嫌がらせには全く効果がありません。
ホウ酸団子程度の効果だと思ってください。

名前(name="name")を必須項目にするかどうかの設定。
trueで必須。空またはfalseで必須ではなくなります。
リファラーチェックするかどうか。
trueにした場合は下記で設定したページ以外からの送信をブロックします。
入力フォームのフルパス
リファラーチェックをtrueにした場合必須。http://からのフルパスで。
本文のリンク記述許可数
name="message"内に書けるURLの数を設定します。
メッセージ欄の禁止語句
配列です。あんまりやりすぎると処理が重くなるかもしれない。
送信禁止するIP ver1.2
設定したIPからの送信を全てブロックします。

ファイル添付機能に関する設定

バージョン1.2以上で有効です。新たな定数が追加されました。
FILETEMPtrueの場合にファイルの送信を有効にします。
詳しくはファイル添付機能の解説をご覧ください。

管理画面に関する設定

バージョン1.4以上で管理画面機能の追加ファイルを使用する場合に、ZM_ADMINtrueにすると有効になります。
詳しくは管理画面機能の解説をご覧ください。

ファイル添付送信機能 ver1.1

メールフォームから画像やPDFなどのファイルを添付して送信することが出来ます。
1度に添付できるファイルの数に制限はありませんが、サーバーのphp.iniの設定によって限界があります。

添付可能なファイル(初期値)

拡張子
gif, png, jpg, pdf, swf, txt, xls, doc, ppt, zip, lzh
ファイルタイプ
image/jpeg, image/pjpeg, image/x-png, image/gif, application/pdf, application/octet-stream, application/x-shockwave-flash, text/plain, multipart/x-zip, application/lha, application/mspowerpoint
ファイル名
日本語文字列の場合は自動的に半角英数の名前に変換して送信します。

極々一般的なファイルは送信出来る設定になってます。
zeromail.php内の設定配列にMIMEタイプと拡張子を追加すれば他のファイルも添付出来るようになります。

init.phpの設定

FILETEMP 添付ファイル機能を使うかどうか。
ここがtrueでなければフォーム側にファイルフィールドがあっても添付送信しません。
MAXSIZE 添付ファイル1つあたりの最大サイズ(kb)
FILEPOOL アップロードされたファイルを保存するかどうか(ver1.4)
UPLOADPASS 添付ファイルの一時保存ディレクトリ名。zeromail.phpと同階層であること。
ver1.3から絶対パス定数を追加したのでディレクトリ名だけでOKです。
(zeromail.phpと別階層にある場合は定数ABSDIRを変更してください。)
IMG_CHECK_TARGET 送信確認時に出る「画像を確認する」リンクのWindowターゲット
_string → target="_string"
string → rel="string"
最初がアンダーバーだとtarget属性、そうでなければrel属性。LightBox系スクリプト用

専用ディレクトリの作成

添付ファイルとしてアップロードされたファイルを一時的に保存するディレクトリが必要です。
添付ファイル機能を使用する場合には必ず作成してください。

利用上の注意
一時保存ディレクトリには内容確認画面を表示した時点でファイルが保存されます。
これらのファイルは内容確認時とメール送信時に一括削除されますが、
内容確認→戻る→ウィンドウを閉じるか別ページに移動という行動をした場合ファイルが削除されません。
FILEPOOLをfalseにしている場合は、定期的にディレクトリ内を確認するようにしてください。

管理画面機能との連携 ver1.4

FILEPOOLtrueにすると、アップロードされた画像が一切削除されなくなると同時に、メール送信もされなくなります。
これはFTPなどから直接ファイルを落とせるようにするためのものですが、
管理画面機能を有効にしている場合は管理画面から一時保存ディレクトリの確認と、
アップロードされているファイルの削除や一括ダウンロードが出来ます。