拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
メールフォームプラグインV1.30(その1・概要)
2008年1月31日
Movable Type 4.1用にメールフォームプラグインバージョン2.0を公開しました。
Movable Type用のメールフォームプラグインをバージョンアップしました。
以下の機能を追加しています。
- メール送信をログに記録
- 連続送信防止
- IPアドレスによるブロック
- Movable Typeのスパム対策機能に対応
- チェック必須のチェックボックスの作成
なお、今回のバージョンから、Movable Type 3.3以降専用とさせていただきます。
1.インストール/アップデート手順
まず、以下をクリックして、ファイルをダウンロードします。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ファイルを解凍すると「MailForm」というフォルダができます。
Movable Typeの「plugins」ディレクトリに、そのフォルダを丸ごとアップロードします。
今回のバージョンでは、Movable Type 3.3の日本語対応機能を利用していますので、ファイルをアップロードする際に、文字コードをMTに合わせずに、元のまま(utf-8)でアップロードしてください。
アップロードが終わったら、「plugins」→「MailForm」→「mt-mail-form.cgi」ファイルのパーミッションを変えて、実行可能に設定します。
なお、このプラグインを新規にインストールした場合は、V1.20と同様の手順で、メールフォームのテンプレートの作成などを行う必要があります。
手順は以下の各エントリーを参照してください。
- メールフォームプラグインV1.20(その1・概要とインストール)
- メールフォームプラグインV1.20(その2・サンプルメールフォーム)
- メールフォームプラグインV1.20(その3・基本的なメールフォームのテンプレート)
- メールフォームプラグインV1.20(その4・送信前確認等のテンプレート)
- メールフォームプラグインV1.20(その5・テキストの入力欄の追加)
- メールフォームプラグインV1.20(その6・チェックボックスの追加)
- メールフォームプラグインV1.20(その7・ラジオボタン/セレクトの追加)
- メールフォームプラグインV1.20(その8・入力エラーのチェック)
- メールフォームプラグインV1.20(その9・自動返信)
- メールフォームプラグインV1.20(その10・メール本文のカスタマイズ)
- メールフォームプラグインV1.20(その11・メールフォームのAjax化)
- メールフォームプラグインV1.20(その12・サイドバー用Ajaxメールフォーム)
2.メール送信をログに記録
メールが送信されたときに、そのことをMovable Typeのログに記録します。
システム・メニューのログのページで、ログを見ることができます。
3.連続送信防止機能
同じIPアドレスからメールが連続送信された場合、直前の送信から1分以上経過しないと、送信エラーページを表示するようにしました。
送信ボタンを間違って何度も押してしまった場合に、メールが複数回届くことを防ぐことができます。
また、スパムメールが同じIPアドレスから連続して送信されるのを防ぐのにも役立ちます。
なお、送信エラーページに、「連続送信された」というエラーメッセージを表示することができます。
この手順は明日解説します。
4.IPアドレスによるブロック
Movable Typeには、「禁止IPアドレス」という機能があります。
この機能は、特定のIPアドレスからのコメント/トラックバックが送信されたときに、エラーの扱いにする機能です。
この機能を利用して、特定のIPアドレスからメールが送信されたときに、送信エラーページを表示することができるようにしました。
禁止IPアドレスの機能を使うには、以下の手順を取ります。
- mt-config.cgiに「ShowIPInformation 1」の行を追加します。
- Blogの設定のページに「禁止IPアドレス」のタブが表示されるようになりますので、そのページで禁止したいIPアドレスを設定します。
なお、送信エラーページに、「禁止IPアドレスによって送信がブロックされた」というエラーメッセージを表示することができます。
この手順は明日解説します。
5.Movable Typeのスパム対策機能に対応
Movable Typeには、プラグインでスパム対策を行う機能があり、コメントやトラックバックのスパムを防ぐことができます。
この機能を利用し、コメント用のスパム対策プラグインをメールに適用して、スパムメールを防ぐことができるようにしました。
たとえば、拙作のNotJapaneseLookupプラグインを使うと、日本語を含まないメールをスパムとすることができます。
ただし、コメント/トラックバックの場合と処理が一部異なります。
コメント/トラックバックの場合、スパム対策プラグインに止められたコメント等は、Movable Typeのデータベースに保存され、保留または迷惑の扱いになります。
一方、スパム対策プラグインにメールが止められた場合は、送信エラーページが表示されるようにしています。
なお、送信エラーページに、「メールがスパムと判断された」というエラーメッセージを表示することができます。
この手順は明日解説します。
6.チェック必須のチェックボックスの作成
「チェック必須のチェックボックスを作れるようにして欲しい」という要望がありましたので、この機能も追加しました。
この使い方は明後日に解説します。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
Wanwan
mailformを導入させていただいているのですが、下記のようなエラーが出てしまい、上手くPOST出来ません。
エラーが発生しました: Can't locate object method "translate_templatized" via package "MT::Plugin::MailForm" at lib/MailForm.pm line 54.
もし、よろしければ、ヒントなど教えていただけると助かります。
ではでは。
壱
>Wanwanさん
こんにちは。
お使いのMovable Typeバージョンはいくつでしょうか。
なお、このエントリーの先頭にも書いてあるように、このプラグインはMovable Type 3.3以降専用です。
toshi
はじめまして。いつも本当に助かっています。
で、お知恵をお貸し願えませんでしょうか。
エントリーアーカイブの記事の最後尾にメールフォームへリンクを張り、「この記事について問い合わせる」とする形で、受ける側で、どの記事から問い合わせをしたのかが解るように、リンク元ページのurlやタイトル等の情報をパラメータとして渡し、フォームのページにも表示させたいのですが、こんな事って可能でしょうか。ぜひ実現したいのです。
宜しくお願い致します。
壱からtoshiへの返信
>toshiさん
こんにちは。
ご質問の件ですが、記事のタイトルを送信する場合だと、以下のような手順でできるはずです。
1.メールフォームのテンプレートの中に、以下のようなタグを入れます。
<input type="hidden" name="entry_title" value="<$MTEntryTitle$>" />
2.送信確認ページおよび送信エラーページのテンプレートで、記事のタイトルを表示する位置に、以下のようなタグを入れます。
<$MTMailPreviewExtParam name="entry_title"$>
3.送信確認ページおよび送信エラーページのテンプレートで、フォーム部分に以下のようなタグを入れます。
<input type="hidden" name="entry_title" value="<$MTMailPreviewExtParam name="entry_title"$>" />
4.メール本文のテンプレートに、以下のようなタグを入れます。
<$MTMailPreviewExtParam name="entry_title"$>
toshiからtoshiへの返信
お返事ありがとうございます。
なるほど。すごく参考になります。
さっそく試してみたいと思います。
で、またご報告させて頂きます!
取り急ぎお礼まで。
mamyu
お世話になります。mamyuと申します。
昨年個人ブログをMT4にバージョンアップしました。
久しぶりに、メールフォームで送信を試しましたら、
「スパムチェックによる制限のため、メールをお送りいただくことができません」
といいうメッセージが出てしまいました。
MailForm_1_30を入れなおしましたが、それでもうまくいきません。何かご示唆がいただければありがたいのですが。
よろしくお願い申し上げます。
mamyuからmamyuへの返信
すいません自己解決しました。
標準プラグイン『SpamLookup - リンク』が原因でした。
『SpamLookup - リンク』-『設定』 の、「リンク数」の最初のチェックボックスのチェックを外しましたら、送信できるようになりました。
toshi
No.6でご質問しましたtoshiです。
別の仕事が入り、少し時間が空いてしまいましたが、ご回答頂いた件、さっそく試してみました。
その結果ですが、また疑問点が出てきてしまいましたもので、お手数ですが再度教えて頂けませんでしょうか。
(コメント記事内ではMTタグを書き込めない設定のようですので、外側のカッコを外して記述しました)
■教えて頂いた以下の方法ですと・・・
input type="hidden" name="entry_title" value="$MTEntryTitle$" /
→メールフォーム内で$MTEntryTitle$を使うには、MTEntriesで前後をマークアップする必要がありますよね。また、それですと、このメールフォームに飛んできたリンク元のページタイトルが特定できないので、以下のようにしてみたんですが、うまく動作しないのです・・・。
1:リンク元のページ(エントリーアーカイブ)内に下記のソースを記述
form method="post" action="$MTBlogURL$cgi/mt/plugins/MailForm/mt-mail-form.cgi" name="mail_form"
input type="hidden" id="mail_entrytitle" name="mail_entrytitle" value="$MTEntryTitle$"
/form
2:メールフォームテンプレートのformタグ内で、下記の2つのソースを記述。
↓リンク元の記事名を入れる場所です。
$MTMailPreviewExtParam name="mail_entrytitle"$
input type="hidden" name="mail_entrytitle" value="$MTMailPreviewExtParam name="mail_entrytitle"$" /
上記のようにして、リンク元のエントリー内からタイトルをcgiに渡しておけば、メールフォームを開いた時に、任意の場所にタイトルが表示できるかと思ったのですが、うまくいきません・・・(値がカラになってしまいます)
やはりメールフォーム以外のテンプレートからデータを渡す事って、できないんでしょうか・・。
またまた長文すみません。どうかお知恵をお貸しください。
壱からtoshiへの返信
>toshiさん
こんにちは。
No.7でお答えしたことですが、一部勘違いがありました。
No.7は、エントリーアーカイブテンプレートにメールフォームを埋め込む場合の話です。
エントリーアーカイブページとメールフォームを別にしてリンクさせるとなると、やり方が違ってきます。
大ざっぱに言うと、以下のような手順になります。
1.メールフォームのテンプレートをPHP化します。
2.エントリーアーカイブテンプレートで、メールフォームへのリンクの部分に、以下のようなタグを入れます。
<a href="http://メールフォームのURL?entrytitle=<$MTEntryTitle encode_url="1"$>">メールフォーム</a>
3.メールフォームテンプレートで、フォーム部分に以下のようなタグを入れます。
<input type="hidden" name="entrytitle" value="<?php print(htmlspecialchars($_GET['entrytitle'])); ?>" />
toshi
壱さま
さっそくのお返事、感謝いたします。いつも有難うございます。
また、最初のご質問が言葉足らずでした。すみません。
やっぱりPHP化しないと駄目なんですね・・・orz
PHP、動かないのです・・・。
ならばやはり、最初に教えて頂いたように、メールフォームそのものをエントリーアーカイブに埋め込む形を検討してみようと思います。
ありがとうございました。大変勉強になります。
miya
はじめまして。
mailform1.30を使用させてもらっております。
MTのverは4.261
サーバはさくらスタンダードです。
「確認」ボタンと「送信」ボタンを押すと
MTのサインイン画面になってしまいます。
MTの設定の方が何か間違っているのでしょうか?
以前MT4.25で利用させていただいた際は
問題なく動いたのですが・・。
どうぞよろしくおねがいいたします。。
壱からmiyaへの返信
>miyaさん
こんにちは。
申し訳ありませんが、バージョン1.3のメンテナンスは現在行っていません。
MT4以降では、メールフォームプラグインのバージョン2以降をご利用いただければと思います。
なお、当方のサイトでは、MT4.261とメールフォームプラグインバージョン2.1bで問題なく動作していました。
miya
お返事ありがとうございます。
もう一度見直してみて、バージョン2以降を導入するか
検討してみます!
miya
度々失礼します。
独自ドメインを使用していて、config.cgiの設定がフルパスになっていなかったのが原因でした。
お手数おかけし、申し訳ありませんでした。
ao
メールフォームを複数設置することは可能でしょうか?
お手数をお掛けいたしますが、宜しくお願い致します。
壱
>aoさん
こんにちは。
メールフォームごとにテンプレート一式を作ることで、複数のメールフォームを設置することができます。
aoから壱への返信
ご回答ありがとうございます!
【テンプレート一式を~】?
新たに作るテンプレートモジュール名はどうしたらよいでしょうか?
例えば【mail_post2】などにするのでしょうか?
その際に、確認ページなどに行く場合は入力ページの内容も変更しなければなりませんよね?
すいません・・・。初歩的な質問ばかりで・・・。
宜しくお願い致します!
壱から壱への返信
>aoさん
こんにちは。
メールフォームを複数作るには、メールフォームのインデックステンプレートと、送信確認/送信エラー/送信完了のテンプレートモジュールを、メールフォームごとに作ります。
テンプレートモジュール名の付け方等は、以下の記事を参照してください。
http://www.h-fj.com/blog/archives/2006/07/10-101621.php