BlognPlus 用「メールフォームモジュール」

ブログ内にメールフォームを設置できます。

メールフォームを設置するメリット

モジュールの主な機能

動作例

モジュールを導入する前に、どんな風に動作しているかご覧になりたい場合は、以下のサイトを参考にして下さい。


動作環境

サーバーで「mail()」関数が有効である必要があります。
コメント/トラックバックを受信した時に通知メールが届くようであれば、問題なく動作するはずです。

ダウンロード

利用規約

  1. このモジュールの所有権は 「nJOY」管理人 CJ にあります。
  2. モジュールを使用して損害が生じても、「nJOY」管理人 CJ は一切の責任を負いかねます。
  3. モジュールの再配布・販売等は一切禁じます。
  4. 利用者個人の責任において改造は自由に行えます。
  5. スクリプト内にあるプログラム名・バージョン名・著作権表示を削除・変更する事は認めません。
  6. 当規約に同意された方のみ、このモジュールを無料で使う事が出来ます。
  7. もしよければ、あなたのブログに「nJOY BLOG」へのリンクをはってやってください。管理人が大変喜び、モジュール作成の励みになります。

メールフォームモジュール」(mailer.zip, 13kb)


インストール方法(主な手順)

  1. ダウンロードした圧縮ファイル(mailer.zip)を解凍する。
  2. 「mailer」フォルダを BlognPlus ディレクトリ下の /module/ にアップロードする。
  3. 「config.cgi」のパーミッションを「666」等に変更する。
  4. スキンファイルの任意の場所にメールフォーム用タグを記述する。

モジュール構成ファイル

赤文字のファイルのパーミッションは「666」「606」等にする必要があります。

インストール方法(BlognPlus v2.6.x 以降)

インストール

「mailer」フォルダを /module/ ディレクトリ下にアップロード後、未登録一覧に入っている「メールフォーム対策モジュール」の [インストール] ボタンを押してください。

動作設定

PC
PC 用スキンにメールフォームを設置した場合、「PC」欄を「ON」にしてください。
携帯
携帯 用スキンにメールフォームを設置した場合、「携帯」欄 を「ON」にしてください。

優先順位

特に制限はありません。

スキンファイルへの記述方法

スキンの任意の場所に以下のメールフォームを表示するソースを追加する。

注意 このソースを管理画面のプロフィール入力欄に記入しないでください。
BlognPlus のバグのせいで、記入するとプロフィール入力欄に不具合が起こります。参考→「プロフィールが変更不可能になる

  1. <form action="./index.php?mode=mailer" method="post" name="mailer">
  2. <input type="hidden" value="{MAILERT}" name="mlt">
  3. <input type="hidden" value="{MAILERI}" name="mli">
  4. 名前:<br>
  5. <input name="mln" type="text" value="" size="10"><br>
  6. メールアドレス:<br>
  7. <input name="mla" type="text" value="" size="10"><br>
  8. 件名:<br>
  9. <input name="mls" type="text" value="" size="10"><br>
  10. メッセージ(必須):<br>
  11. <textarea name="mlm" rows="10"></textarea><br>
  12. <input type="submit" name="submit" value="送信">
  13. </form>

※ これはメールフォームとして動作するために最低限必要な記述です。

カスタマイズ例:スキンファイルへの記述方法

Javascript とスタイルシートなどを追加して、使いやすいメールフォームにする改造例。

<head>〜</head>内に以下の Javascript を挿入する。
この Javascript により必須項目に記入漏れがないかチェックします(→)。
※ 参考:テキストフィールドの入力をチェックする

  1. <script type="text/javascript">
  2. <!--
  3. function mailer_check(){
  4. var flag = 0;
  5. // 設定開始(必須にする項目を設定してください)
  6. if(document.mailer.mlm.value == ""){ // 「メッセージ」入力チェック
  7. flag = 1;
  8. } else if(document.mailer.mln.value == ""){ // 「名前」入力チェック
  9. flag = 1;
  10. } else if(document.mailer.mla.value == ""){ // 「メールアドレス」入力チェック
  11. flag = 1;
  12. } else if(document.mailer.mls.value == ""){ // 「件名」入力チェック
  13. flag = 1;
  14. }
  15. if(flag) {
  16. window.alert('必須項目が未入力です'); // 入力漏れがあれば警告ダイアログを表示
  17. return false;
  18. } else {
  19. return true;
  20. }
  21. }
  22. // -->
  23. </script>

↓メールフォームのソース

  1. <form action="./index.php?mode=mailer" method="post" name="mailer" onSubmit="return mailer_check()">
  2. <input type="hidden" value="{MAILERT}" name="mlt">
  3. <input type="hidden" value="{MAILERI}" name="mli">
  4. 名前(必須):<br>
  5. <input name="mln" type="text" value="" size="10" maxlength="20" style="width:200px;"><br>
  6. メールアドレス(必須):<br>
  7. <input name="mla" type="text" value="" size="10" style="width:200px;ime-mode:disabled;"><br>
  8. 件名(必須):<br>
  9. <input name="mls" type="text" value="" size="10" maxlength="20" style="width:200px;"><br>
  10. メッセージ(必須):<br>
  11. <textarea name="mlm" rows="10" style="width:400px;"></textarea><br>
  12. <input type="submit" name="submit" value="送信">
  13. </form>

名前が必須項目でなければ青文字部分、メールアドレスが必須項目でなければ赤文字部分、件名が必須項目でなければ緑文字部分をそれぞれ削除してください。

サイドバーに入れる場合は、「style="width:200px;"」 を 「style="width:90%;"」 などに修正してください。

カスタマイズ例:控えメール送信機能を有効にする

Ver1.06 からメール送信者自身へメールの控えを送る機能が追加されました。
この機能を有効にする為には <form>〜</form> 内に以下の記述を加えてください。

  1. <input type="checkbox" name="mlc" value="1">

スキンへの記述例

  1. <form action="./index.php?mode=mailer" method="post" name="mailer" onSubmit="return mailer_check()">
  2. <input type="hidden" value="{MAILERT}" name="mlt">
  3. <input type="hidden" value="{MAILERI}" name="mli">
  4. 名前(必須):<br>
  5. <input name="mln" type="text" value="" size="10" maxlength="20" style="width:200px;"><br>
  6. メールアドレス(必須):<br>
  7. <input name="mla" type="text" value="" size="10" style="width:200px;ime-mode:disabled;"><br>
  8. 件名;(必須):<br>
  9. <input name="mls" type="text" value="" size="10" maxlength="20" style="width:200px;"><br>
  10. メッセージ(必須):<br>
  11. <textarea name="mlm" rows="10" style="width:400px;"></textarea><br>
  12. <input type="submit" name="submit" value="送信">
  13. <input type="checkbox" name="mlc" value="1"> メールの控えを自分に送信(メールアドレス必須)
  14. </form>

このように記述すると、送信ボタン右にチェックボックスが表示されます。
メール送信者がチェックボックスにチェックを入れると、ブログ管理者に送られたものと同じメールの控えがメール送信者にも送られます。

注意点

当たり前ですが、メールアドレス欄に記入がない場合は控えのメールを送信する事は出来ません。
メールアドレス未記入でチェックボックスにチェックがある場合は、エラーが返されます。

ブログ管理者のメールアドレスがいたずらに漏れないよう、控えメールの宛先(To)は送信者のメールアドレスになります。ブログ管理者には Bcc でメールが届きます。

フォームへの入力メール
メールアドレス控えFromToBcc
未記入 (*)-ブログ管理者-
未記入エラー
記入送信者ブログ管理者-
記入送信者送信者ブログ管理者

* メールアドレスを入力必須にしている場合は、エラーになります。

カスタマイズ例:返信希望・不要欄を設置する

Ver1.09 から「返信希望・不要」欄を設置する事が出来るようになりました。
この機能を有効にする為には <form>〜</form> 内に以下の3つの記述のうち好きなタイプを加えてください。

チェックボックス

返信希望(メールアドレス必須)
  1. <input type="checkbox" name="mlr" value="1">返信希望(メールアドレス必須)

ラジオボタン

返信希望(メールアドレス必須) 返信不要
  1. <input type="radio" name="mlr" value="1">返信希望(メールアドレス必須)
  2. <input type="radio" name="mlr" value="2">返信不要

セレクトメニュー

  1. <select name="mlr">
  2. <option value="0">-- 返信 --</option>
  3. <option value="1">返信希望</option>
  4. <option value="2">返信不要</option>
  5. </select>

注意点

「返信希望」を選択して、メールアドレスが未記入だった場合、モジュールはエラーを返します。

管理画面

管理画面からモジュールの動作に関する設定を変更できます。

受信者

メールの受取人を指定できます。

ユーザー毎」を選んだ場合は、メールフォームをプロフィール内({PROFILE}〜{/PROFILE})に設置して下さい。
プロフィール内に設置する事で、開いているプロフィールのユーザー宛にメールを送る事が出来ます。これにより複数ユーザーで運営していても、ユーザー個別にメールを送る事が可能となっています。
※ [ユーザー情報]→「メール通知設定」で指定した「受信メールアドレス」宛にメールが送信されます。

メールアドレスで指定」を選んだ場合は、下記の「メールアドレス」欄のメールアドレス宛にメールが送られます。
サイドバーに設置する場合は、こちらを選んでください。

メールアドレス

「受信者」欄で「メールアドレスで指定」を選んだ場合、このメールアドレスが使われます。

「受信者」欄で「ユーザー毎」を選んだ場合は、ここの指定は無視されます。

入力必須項目

名前/件名/メールアドレスを入力必須にするかどうか選べます(メッセージは常に入力必須)。
入力必須項目に記入がなかった場合は、エラー画面が表示されメールは送信されません。

署名

メールの末尾にブログ名とURLを挿入する事が出来ます(例↓)。

--------------------------------
BlognPlus を使おう!
http://i-njoy.net/blognplus/
--------------------------------

スパム対策

Ver1.10 から簡易スパム判定機能が追加されました。
自動投稿プログラムによるスパムを弾く事が出来ます。

管理画面からスパムと判定されたメールの処理方法を選択する事が出来ます。

メールルール(Outlook Express)

送信する設定にしている場合、メールソフトの振り分け機能を使ってスパムを振り分けてください。
件名の [SPAM] で振り分けると良いでしょう。

例:Outlook Express 6.0 の場合

「ツール(T)」 → 「メッセージ ルール(R)」 → 「メール(M)...」


スパムと判定された場合の動作

スパムと判定された場合は、「メールの控えを送信する」にチェックが入っていても、控えメールは相手には送られません。
スパムの多くは実在しないメールアドレスや全く関係のないメールアドレスを勝手に使っている事が多いための処置です(前者の場合だとエラーメールが届き、後者だと無関係の人にメールが届きます)。

モジュールの仕様など

必須項目

メッセージ以外の項目については、入力必須にするかどうか管理画面から設定できます。

送信直前にモジュール側でチェックし、もし記入漏れがあった場合、エラー画面が表示されます(記入内容は失われます)。
PHP スクリプト側で処理を行う前に Javascript によるチェックを行う事で、送信ボタンを押したけれど、記入漏れのために書いた内容がリセットされるのを未然に防ぐ事が出来ます。

Javascript によるチェックはあくまで簡易的なものですので、必ず管理画面での設定と併用してください。

メールアドレスのチェック

Javascript によるチェックでは、単なるランダムな文字列でもチェックを通り抜けてしまいます。
しかしモジュール側のチェックでは、それが正しいメールアドレスかどうかもチェックします(さすがに実在するアドレスかどうかまでは分かりませんが…)。

入力項目

名前/メールアドレス/件名入力欄はなくても動作するので、必要ない場合は削除しても構いません。
これらの入力欄を削除した場合は、必ず管理画面から入力必須項目のチェックも外してください。

送信者情報

悪戯対策として、このモジュール経由でメールを送信したユーザーの情報はメールのヘッダに記録されます。

X-HTTP_REFERER
リファラ(通常はメールフォームが設置してあるページのURL)
X-USER_AGENT
送信者のユーザーエージェント(ブラウザ)
X-REMOTE_ADDR
送信者の IP アドレス
X-TIME_TO_WRITE
送信者がメールを書くのに費やした時間(単位=秒)

アップグレードの仕方

Ver1.05〜1.20 → 1.21

「config.cgi」以外の全てのファイルを上書きアップロードしてください。

アンインストール方法

BlognPlus v2.6.x 以降

  1. モジュール管理画面から「モジュールアンインストール」ボタンを押す。

BlognPlus 全バージョン共通

  1. スキンの HTML ファイルに追加したメールフォーム用タグを削除する。
  2. /mailer/ ディレクトリを削除する。

バージョンアップ情報

2009/05/30
ver1.21 BlognPlus v2.6.2 に対応
2009/05/15
ver1.20 管理画面に固定メニュー導入
2009/05/15
ver1.13 BlognPlus v2.6.x に正式対応
2006/12/26
ver1.12 BlognPlus v2.4.0 に対応
2006/08/27
ver1.11 スパム処理機能追加
2006/08/27
ver1.10 簡易スパム判定機能追加
2006/06/23
ver1.09 返信希望・不要欄を設置可能に
2006/06/12
ver1.08 署名機能追加
2006/06/10
ver1.07 メールと確認画面が文字化けする不具合を修正
2006/06/02
ver1.06 控え送信機能追加
2006/05/13
ver1.05 送信後に確認画面追加
2006/05/12
ver1.04 セキュリティ対策追加
2006/05/12
ver1.03 複数ユーザー対応
2006/05/11
ver1.02 入力必須項目処理追加
2006/05/11
ver1.01 管理画面追加
2006/05/11
ver1.00 メール送信機能実装

サイト作成のヒント集に戻る