お知らせ

Movable Type 5 Webサイト製作ガイドVolume 22010年4月19日

Movable Type 5 Webサイト製作ガイドVolume 2」を発売しました。
「Movable Type 5 Webサイト製作ガイドVolume 1」の続編で、変数等の応用的な機能や、ウェブサイトやテーマなどのMovable Type 5の新機能についてしっかり解説した書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

メールフォームプラグインV1.30(その1・概要)

| コメント(18) | トラックバック(5)

2008年1月31日
Movable Type 4.1用にメールフォームプラグインバージョン2.0を公開しました。

Movable Type用のメールフォームプラグインをバージョンアップしました。
以下の機能を追加しています。

  • メール送信をログに記録
  • 連続送信防止
  • IPアドレスによるブロック
  • Movable Typeのスパム対策機能に対応
  • チェック必須のチェックボックスの作成

なお、今回のバージョンから、Movable Type 3.3以降専用とさせていただきます。

1.インストール/アップデート手順

まず、以下をクリックして、ファイルをダウンロードします。

MailForm_1_30.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、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と同様の手順で、メールフォームのテンプレートの作成などを行う必要があります。
手順は以下の各エントリーを参照してください。

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.チェック必須のチェックボックスの作成

「チェック必須のチェックボックスを作れるようにして欲しい」という要望がありましたので、この機能も追加しました。
この使い方は明後日に解説します。

トラックバック(5)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/922.

当ブログは以前から自作のメールフォームを設置していて、時々ではありますがブログに書いてあることについての質問などをメール... 続きを読む

テレポーテーションウェブログ - メールフォーム設置 (2007年9月29日 12:12)

本体サイトのメールフォームについてどうしようかと悩んでいたところ、The blog of H.Fujimotoで公開されている メールフォームプラグインを... 続きを読む

当サイトにメールフォームを設置しました。 今回、使用したのはThe blog o... 続きを読む

ウェブページの作成が可能になったので、ようやくメールフォーム作成に取りかかりまし... 続きを読む

テンプレートタグリファレンス グローバル・モディファイアリファレンス 今まででは、ちょっとした条件でテンプレートの内容を変えようとすると、プラグインに頼... 続きを読む

コメント(スレッド11件,コメント18件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.4 Wanwan : (無題)

mailformを導入させていただいているのですが、下記のようなエラーが出てしまい、上手くPOST出来ません。

エラーが発生しました: Can't locate object method "translate_templatized" via package "MT::Plugin::MailForm" at lib/MailForm.pm line 54.

もし、よろしければ、ヒントなど教えていただけると助かります。


ではでは。

No.5  : (無題)

>Wanwanさん
こんにちは。

お使いのMovable Typeバージョンはいくつでしょうか。
なお、このエントリーの先頭にも書いてあるように、このプラグインはMovable Type 3.3以降専用です。

No.6 toshi : ご教授ください

はじめまして。いつも本当に助かっています。

で、お知恵をお貸し願えませんでしょうか。

エントリーアーカイブの記事の最後尾にメールフォームへリンクを張り、「この記事について問い合わせる」とする形で、受ける側で、どの記事から問い合わせをしたのかが解るように、リンク元ページのurlやタイトル等の情報をパラメータとして渡し、フォームのページにも表示させたいのですが、こんな事って可能でしょうか。ぜひ実現したいのです。

宜しくお願い致します。

No.7  : Re:ご教授ください

>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"$>

No.8 toshi : ありがとうございます

お返事ありがとうございます。

なるほど。すごく参考になります。
さっそく試してみたいと思います。

で、またご報告させて頂きます!

取り急ぎお礼まで。

No.9 mamyu : MT4にバージョンアップした影響でしょうか?

お世話になります。mamyuと申します。

昨年個人ブログをMT4にバージョンアップしました。
久しぶりに、メールフォームで送信を試しましたら、
「スパムチェックによる制限のため、メールをお送りいただくことができません」
といいうメッセージが出てしまいました。

MailForm_1_30を入れなおしましたが、それでもうまくいきません。何かご示唆がいただければありがたいのですが。
よろしくお願い申し上げます。

No.10 mamyu : 自己解決しました。

すいません自己解決しました。
標準プラグイン『SpamLookup - リンク』が原因でした。
『SpamLookup - リンク』-『設定』 の、「リンク数」の最初のチェックボックスのチェックを外しましたら、送信できるようになりました。

No.11 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に渡しておけば、メールフォームを開いた時に、任意の場所にタイトルが表示できるかと思ったのですが、うまくいきません・・・(値がカラになってしまいます)
やはりメールフォーム以外のテンプレートからデータを渡す事って、できないんでしょうか・・。

またまた長文すみません。どうかお知恵をお貸しください。

No.12  : Re:う~ん・・・

>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'])); ?>" />

No.13 toshi : ありがとうございます。

壱さま

さっそくのお返事、感謝いたします。いつも有難うございます。
また、最初のご質問が言葉足らずでした。すみません。

やっぱりPHP化しないと駄目なんですね・・・orz

PHP、動かないのです・・・。

ならばやはり、最初に教えて頂いたように、メールフォームそのものをエントリーアーカイブに埋め込む形を検討してみようと思います。

ありがとうございました。大変勉強になります。

No.14 miya : サインイン画面になってしまいます。

はじめまして。
mailform1.30を使用させてもらっております。

MTのverは4.261 
サーバはさくらスタンダードです。

「確認」ボタンと「送信」ボタンを押すと
MTのサインイン画面になってしまいます。
MTの設定の方が何か間違っているのでしょうか?

以前MT4.25で利用させていただいた際は
問題なく動いたのですが・・。

どうぞよろしくおねがいいたします。。


No.15  : Re:サインイン画面になってしまいます。

>miyaさん
こんにちは。

申し訳ありませんが、バージョン1.3のメンテナンスは現在行っていません。
MT4以降では、メールフォームプラグインのバージョン2以降をご利用いただければと思います。

なお、当方のサイトでは、MT4.261とメールフォームプラグインバージョン2.1bで問題なく動作していました。

No.16 miya : ありがとうございました。

お返事ありがとうございます。
もう一度見直してみて、バージョン2以降を導入するか
検討してみます!

No.17 miya : 自己解決しました。

度々失礼します。
独自ドメインを使用していて、config.cgiの設定がフルパスになっていなかったのが原因でした。
お手数おかけし、申し訳ありませんでした。

No.18 ao : 質問です!

メールフォームを複数設置することは可能でしょうか?
お手数をお掛けいたしますが、宜しくお願い致します。

No.19  : Re:質問です!

>aoさん
こんにちは。

メールフォームごとにテンプレート一式を作ることで、複数のメールフォームを設置することができます。

No.20 ao : (無題)

ご回答ありがとうございます!
【テンプレート一式を~】?
新たに作るテンプレートモジュール名はどうしたらよいでしょうか?
例えば【mail_post2】などにするのでしょうか?
その際に、確認ページなどに行く場合は入力ページの内容も変更しなければなりませんよね?
すいません・・・。初歩的な質問ばかりで・・・。
宜しくお願い致します!

No.21  : (無題)

>aoさん
こんにちは。

メールフォームを複数作るには、メールフォームのインデックステンプレートと、送信確認/送信エラー/送信完了のテンプレートモジュールを、メールフォームごとに作ります。
テンプレートモジュール名の付け方等は、以下の記事を参照してください。

http://www.h-fj.com/blog/archives/2006/07/10-101621.php

コメントする