A-Formでは、管理者宛ておよびエンドユーザ宛て自動返信メールのそれぞれについて独立でテンプレートファイルを持っています。このテンプレート内で、MTタグを使ってユーザーの入力値を取得したり, 入力値によって表示の出し分けたりすることができます。

例として、次のようなシンプルなフォームを作ってみました。
上は生成されたフォーム, 下図はA-Formの編集画面です。
テンプレートの出し分けで使いたいので、パーツIDには明示的に名前を振っています。
今回は”参加イベント”(パーツIDは event にしました) の入力値によって参加費表示を変えるように書いてみます。

フォームは実際に試すことができます。
https://www.ark-web.jp/movabletype/demo/aform_pcmobile/event-seminar-test/mail-dashiwake.html

ユーザ入力値によって自動受信メールの内容を出し分けるフォーム

自動返信メールの内容をユーザ入力値で出し分けするサンプル(AForm編集画面側)

A-Formの自動返信メールのテンプレートは、下記に用意されています。

  • ユーザー宛て用テンプレート plugins/AForm/tmpl/mail_aform_customer.tmpl
  • 管理者宛て用テンプレート plugins/AForm/tmpl/mail_aform_admin.tmpl

基本的にはこれらを書き換えれば良いのですが、そうすると全てのフォームに同じ出し分けが適用されてしまいます。
今回は,、特定のイベント受付フォーム(aform036)のユーザー宛てメールにだけ適用したいと想定します。

特定のフォームにのみ適用する場合は、そのフォームIDの番号でディレクトリを作って元になるテンプレートをコピーし、コピー側を編集します。

今回ならaform036なので、以下のファイルを編集します。

plugins/AForm/tmpl/036/mail_aform_customer.tmpl
...................^^^.........................

中身はこのように書きます。
入力フィールドを mt:loop で順次取得します。パーツID値が event であれば、その入力値(label_value)を見て、1000円/5000円/0円(例外処理)に出し分けします。

<mt:loop name="fields">
    <mt:If name="parts_id" eq="event">あなたの参加費は、
        <mt:If name="label_value" like="セミナーのみ">1,000
        <mt:ElseIf like="セミナーと懇親会">5,000
        <mt:Else>0
        </mt:If>円です
    </mt:If>
</mt:loop>

※読みやすさのために改行を入れていますが、実際は改行なでmt:loop全体を一行に納めてください。出力がそのままテキストメールに差し込まれるしくみのため、loop内に改行を挟むとメール本文に余分な空行が入ってしまいます。

届いたメールには、

あなたの参加費は、5,000円です

のように書かれるはずです。

今回はパーツIDによって判別しましたが、パーツの種別で判別することもできます。

例えば見出しパーツのみ、自動返信メール内に書き出さないようにしたいなら次のように書きます。
モディファイア type でそのパーツの種別が取得できます。

	<mt:loop name="fields">
    <mt:Unless name="type" eq="label">do something...(ただし見出しパーツを除く)</mt:Unless>
</mt:loop>

各パーツごとの値は次の通りです。

定番パーツtype名(eq=”xxxxx”部分)
メールアドレスemail
郵便番号zipcode
都道府県prefecture
電話番号tel
URLurl
個人情報保護方針privacy
カレンダーcalendar
氏名name
氏名フリガナkana
基本パーツtype名(eq=”xxxxx”部分)
見出しlabel
コメント・注釈note
テキストtext
複数行テキストtextarea
ドロップダウンリストselect
チェックボックスcheckbox
ラジオボタンradio
ファイルアップロードupload
外部パラメータparameter
パスワードpassword
対象製品
対象バージョン
すべてのバージョン
記事更新日
2013年7月 2日