メールフォームプラグインでは、メールが短時間に連続して送信された時などに、送信エラーページが表示されるようにしています。
その際のエラーメッセージをカスタマイズする方法を解説します。
1.標準のエラーメッセージ
送信エラーページのテンプレートの中で、MTErrorMessageタグを使うと、メールフォームプラグインの標準のエラーメッセージを表示することができます。
2.エラーメッセージのカスタマイズ
エラーメッセージをご自分の好きなようにカスタマイズしたい場合、以下の条件タグを使ってエラーの発生を判断するようにします。
| エラー | 条件タグ |
|---|---|
| メールの送信に失敗したとき | MTMailIfSendError |
| 返信メールの送信に失敗したとき | MTMailIfAutoReplyError |
| 連続送信されたとき | MTMailIfThrottled |
| IPアドレスでブロックされたとき | MTMailIfIPBanned |
| スパムと判定されたとき | MTMailIfSpam |
たとえば、メールが連続送信されたときに、「短時間でのメールの連続送信はご遠慮いただいています。」のエラーメッセージを表示したい場合、送信エラーのテンプレートに以下のようなタグを入れます。
<MTMailIfThrottled> <p>短時間でのメールの連続送信はご遠慮いただいています。</p> </MTMailIfThrottled>
同様の手順で、他のエラーに対するメッセージもカスタマイズすることができます。










コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
お世話になります。
メールフォームをカスタムして名前(フリガナ)や電話番号を入力させる項目を設けているのですが、カタカナや英数字の入力チェックはできないのでしょうか。
フリガナの欄はカタカナ以外の文字が入っていたらエラーに、電話番号の欄には数字以外が入っていたらエラーにしたいと考えています。
当初javascriptで実現させようとしていたのですが、javascriptを実行するタイミングが難しく断念しました。
何か良い方法がありましたらご教授ください。
よろしくお願いいたします。
>hiroyukiさん
こんにちは。プラグインご利用ありがとうございます。
ご質問のような件ですが、このプラグインにはそのような機能はありません。
フォームを送信する直前にJavaScriptを実行して(formのonsubmit属性)、エラーチェックするようにすれば良いかと思います。
壱様
回答ありがとうございます。
onsubmitを使えばよいのですね。今まで「確認」「送信」ボタンのonclickに埋め込もうとしていたのでうまくいかなかったようです。
もう一点、続けて質問になってしまって申し訳ないのですが、javascriptを使用した場合はやはり「MTErrorMessage」のエラーとは違うエラーになるという認識でよろしいでしょうか?
よろしくお願いいたします。
>hiroyukiさん
こんにちは。
JavaScriptでのエラー処理は、このプラグインの関知するところではありません。
表示するエラーメッセージも、JavaScriptで自由に組んでいただくことができます。
壱様
ご回答ありがとうございます。
いろいろとありがとうございました。
お世話になります。
最近はホームページを閲覧しないで、自動的にメールフォームから迷惑メール(特に海外から)が届いており、この対策をやりたいのですが、このプラグインの機能を駆使すれば可能でしょうか?
もし可能であれば、その方法をご教授いただけないでしょうか。
ちょうど、このコメントのように「特定のキーワード」を入力してもらい、そのキーワードが一致していない場合はエラーにするようにしたいと考えていますが・・・。
>海風さん
こんにちは。
このプラグインでは、MT標準のコメント/トラックバック用のスパム対策機能を流用するようになっています。
キーワードでスパムかどうかを判定するなら、MT標準の「SpamLookup - Keyword Filter 2.1」で、キーワードを設定します。
ちなみに、海外からの日本語を含まないメールを避けるなら、拙作のNotJapaneseLookupプラグインを使うのも1つの方法です。
http://www.h-fj.com/blog/archives/2005/10/08-110622.php
ありがとうございます。
さっそく試してみます。
ありがとうございました。
こんにちは。
メールアドレスの形式が正しくない場合に、<MTErrorMessage>タグを使用せずに「メールアドレスの形式が正しくありません」と表示したいのですが、方法はございますでしょうか。
フィールドを追加しているので、<MTErrorMessage>では思い通りのテキストにならず、個別にエラーを作成しているのですが、方法が分かりかねております。
何卒よろしくお願い致します。
>きなこさん
こんにちは。
ご質問の件ですが、「MTMailPreviewIfEMailError」というブロックタグで、メールアドレスの形式が正しくない場合に、エラーメッセージを出力することができます。
「その8」のエントリーに載っていたのを見落としておりました。
すぐにご返信頂きましてありがとうございます。
藤本 壱 さま
先程は突然のメールの回答ありがとうございました。
URLを載せた質問だったためメールでさせていただきましたが
情報を共有するためコチラの方で書き込みを続けたいと思います。
質問内容の要約
独自のテンプレートにて構築をしていましたが
再構築にてエラーが無くなったのでテキストを追加して
形としては完成しました。
しかし最初のフォームから送信をすると
MT画面のエラー表示
『エラー内容は設定を読み込むのに失敗しました』
が出てしまいます。
どのようにしたらよいでしょうか?
回答
>フォーム部分(~)の中に、以下のようなタグが必要です。
>なお、「メールフォームの設定の名前」は、
そちらで設定した名前に応じて変える必要があります。
>
指示通り入れてみましたがまだ読み込みエラーと出てしまいます。
他に訂正する部分はありますでしょうか?
お手数をおかけいたしますが教えていただけると助かります。
>ユウさん
こんにちは。
フォーム内に以下のタグも追加してください。
「ブログのID」は、メールフォームが属しているブログのIDに合わせて書き換えてください。
<input type="hidden" name="mail_blog_id" value="ブログのID">
また、送信ボタンのinputタグには、必ず「name="mail_post"」の属性を付けてください。
藤本 壱 さま
返信が遅くなり申し訳ありませんでした。
共通部分にて勘違いして記入したいる部分が見つかり
各モジュールも訂正したらうまくいきました。
お手数をおかけいたしました。
藤本 壱さま こんにちは
2週間前に大変素晴らしいMailForm_2_10b(環境はMT4.2)というプラグインをはじめて使いました。直ぐにインストールして、簡単に使えて便利でした。しかし、1週間ぐらい経って、テンプレートをいじっていくうちに、何故か突然使えなくなりました。
それで改めて、新しくブログを作成してメールフォームを作成して、アクセス(http://www.XXXXXXXX.com/mt/plugins/MailForm/mt-mail-form.cgi)すると、「エラーが発生しました。設定を読み込むのに失敗しました」というメッセージが現れます。
プラグインを一旦削除して再度入れ直してたり、新規ブログでシンプルな基本のフォームでも、同様の症状が起こります。使っているサーバー自体は安定していると思います。CoreServerを利用しており、試しで同じ環境の他のサーバにMTを設置して、MailFormを入れたら何の問題なく動いております。
感覚的な話ではありますが、データベースに何か書き込まれているような感じがしております。プラグイン自身を初期化する方法はありますでしょうか?
>エイゴさん
こんにちは。
原因はよくわかりませんが、とりあえずメールフォームプラグインをいったん削除して、入れなおしてみてください。
手順は以下の通りです。
1.メールフォーム関係のテンプレートをすべて削除します。
2.メールフォームプラグインのファイルをサーバーから削除します。
3.phpMyAdminで、データベースの「mt_mailform_setting」テーブルを削除します。
4.データベースの「mt_config」テーブルを編集する状態にします。
5.4.のテーブルにレコードが1つだけありますので、そのレコードを編集する状態にします。
6.「config_data」フィールドの値の中から、以下の部分を削除して、レコードを保存しなおします。
PluginSchemaVersion mailform=1.01