フォームから送信されるメールの文面も、必要に応じてカスタマイズすることができます。
今日はその方法を解説します。
2007年2月3日
MTMailBodyContainerタグの記述が抜けていたので追加しました。
1.メール本文用テンプレートの作成
メールの文面をカスタマイズするには、そのためのテンプレート・モジュールを作ります。これを「メール本文用テンプレート」と呼びます。
テンプレート・モジュールを新規作成し、「モジュールの内容」の欄に、メールの文面を入力します。
また、モジュールの名前は任意です。
このテンプレートの中では、MTMailPreviewXXタグを使って、フォームに入力された値を出力することができます。
ただし、その場合はメールの文面をMTMailBodyContainerタグで囲みます。
例えば、以下のような形式でメールを送信するようにしたいとしてください。「[]」で囲んだ部分を、フォームで入力された値に置き換えたいとします。
●メールアドレス [メールアドレス] ●年齢 [ageというフィールドの値] ●本文 [本文]
この場合、メール本文用テンプレートを以下のように作ります。
<MTMailBodyContainer> ●メールアドレス <$MTMailPreviewEMail$> ●年齢 <$MTMailPreviewExtParam name="age"$> ●本文 <$MTMailPreviewBody$> </MTMailBodyContainer>
2.メール本文用テンプレートの名前の指定
メール本文用テンプレートを作ったら、メールフォーム/送信前確認/送信エラーの各テンプレートのフォーム部分に、以下のようなタグを入れます。
<input type="hidden" name="mail_body_template" id="mail_body_template" value="メール本文用テンプレートの名前" />
なお、メール本文用テンプレートを指定しない場合、以下のようなフォーマットでメールが送信されます。
「[]」で囲んだ部分は、フォームで入力された値に置き換えられます。
題名 :[題名] 送信者:[送信社名] <[メールアドレス]> 本文 : [本文] 追加フィールド: [フィールド名] = [フィールドの値]
3.前後のエントリー
メールフォームプラグインは解説が長いので、エントリーを複数に分けています。
前後のエントリーは以下のリンクで参照することができます。
前のエントリー(その9・自動返信)
次のエントリー(その11・メールフォームのAjax化)
また、サイドバーの「関連するエントリー」の箇所に、メールフォーム関連のエントリーの一覧が表示されていますので、そちらもご利用ください。


コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
こんにちは。
最近メールフォームからスパムを送信するといった状態が続いておりまして、スパムと普通のメールと見分けられるようにメール件名をメールフォームで入力したタイトルに置き換える方法はございますでしょうか?
現在はメール件名には”メールフォームからメールが送信されました”と自動的に挿入されますがこの部分はタイトルに置き換えたりさせたいのですが可能でしょうか?
>CHOBIさん
こんにちは。プラグインご利用ありがとうございます。
タイトルをそのままメールの件名にすると、タイトルに含まれる文字によっては、メールが送信されないという現象が起こったことがあります。
そのため、申し訳ありませんが、メールの件名を「メールフォームからメールが送信されました」にしています。
なお、スパム対策はいずれやろうと思っていますので、今しばらくおまちください。
ご返答ありがとうございます。
了解しました。とりあえず現状のまま乗り切ってみます。
こんばんは
MT初心者のharuです
アドバイスを受けたいことが2点あります
ここまでは何とかできたのですが
「メール本文のカスタマイズ」でひっかかっています。
本文ようテンプレートのモジュールを作り。それぞれのページにテンプレート名の入ったタグを書き込み、送信したところ
メール、自動返信メールともに 空メールになってしまいます。
(それまではちゃんと送れていた)
もう一つは
セレクトボックスですが
規定値を「選択してください」としておき、選択を必須項目に
することはできるのですか。
よろしくお願いします
>haruさん
こんにちは。メールフォームプラグインをご利用いただき、ありがとうございます。
空メールが送られるということですが、本文用/自動返信用テンプレートの内容に誤りがあることが考えられます。
また、セレクトの件ですが、現状ではご希望のようなことを行うことができません。
こちらはプラグインのバージョンアップで対応したいと思いますので、しばらくお待ちください。
解決しました!!
それぞれのテンプレートに書き込んだ、最後の最後の「>」が付いていませんでした。コピーしたときのミスのようです。
ほんとうにありがとうございます。
早速「MT 上級カスタマイズ術」購入いたしました。
これからもいろいろとお世話になるとおもいます、
よろしくお願いします。
haru
こんにちは。
教えていただきたいのですが、
「メール本文のカスタマイズ」や「送信前の確認ページのテンプレート」で追加したセレクトやラジオボタンでの送信値ではなく表示値を表示することはできるのでしょうか。
例えば、下記のような場合
表示値 送信値
男 1
女 2
性別:男
のように表示することはどのようにすれば可能でしょうか。
また、要返信というチェックボックスを作った場合、メールの本文で
要返信:1 ではなく、
要返信:あり
のように表示することは可能なのでしょうか?
よろしくお願いいたします。
>masaさん
こんにちは。プラグインご利用ありがとうございます。
まず、セレクト等の表示値を表示する方法ですが、それにはセレクト等を組む際に、送信値と表示値を同じにするのが簡単です。
それから、チェックボックスの値の表示方法ですが、これはMTIfQueryParamタグを使って、チェックボックスの値に応じて出力する内容を変えるようにします。
以下のエントリーを参照してください。
http://www.h-fj.com/blog/archives/2007/01/29-093609.php
ありがとうございます。
おかげさまで、思ったようにできました。
勝手に送信値には日本語をいれてはいけないと思い込んでおりました。
また、MTIfQueryParamタグの使い方も勉強になりました。
本当にありがとうございました。
これからもいろいろとお世話になるとおもいますが、
よろしくお願いいたします。