スニペット"FormLister":メール送信フォームの実装

メール送信のフォームを実装するには、次のようなコードで実装できます。

  • ※ あくまで実装例であり、使用するパラメーターや設定値などは参考程度のものです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
[!FormLister?
    &controller=`Form`
    &formid=`form`
    &rules=`{
    "name" : {
        "required" : "お名前を入力してください。"
    },
    "email" : {
        "required" : "メールアドレスを入力してください。",
        "email" : "メールアドレスアドレスの形式で入力してください。"
    },
    "know" : {
        "countBetween" : {
            "params" : [1, 2],
            "message" : "1~2つの範囲で選択してください。"
        }
    },
    "contents" : {
        "minLength" : {
            "params" : 10,
            "message" : "10文字以上で入力してください。"
        }
    }
}`
    &formControls=`sex,know`
    &formTpl=`@CODE:
<form method="post">
    <input type="hidden" name="formid" value="form">
 
    <dl>
        <dt><label for="name">お名前</label></dt>
        <dd class="[+name.errorClass+][+name.requiredClass+]">
            <input name="name" value="[+name.value+]" id="name">
            [+name.error+]
        </dd>
        <dt>性別</dt>
        <dd class="[+sex.errorClass+][+sex.requiredClass+]">
            <input type="radio" name="sex" value="男性" id="sex-male" [+c.sex.男性+]><label for="sex-male">男性</label>
            <input type="radio" name="sex" value="女性" id="sex-woman" [+c.sex.女性+]><label for="sex-woman">女性</label>
            [+sex.error+]
        </dd>
        <dt><label for="email">メールアドレス</label></dt>
        <dd class="[+email.errorClass+][+email.requiredClass+]">
            <input name="email" value="[+email.value+]" id="email">
            [+email.error+]
        </dd>
        <dt>当Webサイトを知ったきっかけ</dt>
        <dd class="[+know.errorClass+][+know.requiredClass+]">
            <input type="checkbox" name="know[]" value="チラシ" id="know-flyer" [+c.know.チラシ+]><label for="know-flyer">チラシ</label>
            <input type="checkbox" name="know[]" value="検索エンジン" id="know-search" [+c.know.検索エンジン+]><label for="know-search">検索エンジン</label>
            <input type="checkbox" name="know[]" value="その他" id="know-other" [+c.know.その他+]><label for="know-other">その他</label>
            [+know.error+]
        </dd>
        <dt><label for="contents">お問い合わせ内容</label></dt>
        <dd class="[+contents.errorClass+][+contents.requiredClass+]">
            <textarea name="contents" id="contents">[+contents+]</textarea>
            [+contents.error+]
        </dd>
    </dl>
 
    [+form.messages+]
 
    <button>送信</button>
</form>`
    &errorTpl=`@CODE:<p class="error-message">[+message+]</p>`
    &requiredClass=` required`
    &errorClass=` error`
    &messagesOuterTpl=`@CODE:<p class="error-messages">[+messages+]</p>`
    &isHtml=`0`
    &to=`info@example.co.jp`
    &from=`noreply@example.co.jp`
    &fromName=`管理者`
    &subjectTpl=`@CODE:[+name.value+]様からお問い合わせがありました:[(site_name)]`
    &reportTpl=`@CODE:次の通りお問い合わせがありました。
 
------------------------------
お名前:[+name.value+]
性別:[+sex.value+]
メールアドレス:[+email.value+]
当Webサイトを知ったきっかけ:[+know.value+]
お問い合わせ内容:[+contents:strip_tags+]
------------------------------`
    &ccSender=`1`
    &ccSenderFromName=`管理者`
    &ccSubjectTpl=`@CODE:お問い合わせありがとうございます:[(site_name)]`
    &ccSenderTpl=`@CODE:[+name.value+]様、お問い合わせありがとうございます。
 
※ 本メールは[(site_name)]から自動的に送信されたものです。`
    &successTpl=`@CODE:<div class="complete">送信が完了しました。</div>`
!]

サンプルコード上で使用されているパラメーターについては次の通りです。

パラメーター 説明
&controller Formを指定することでメールを送信するためのフォームとして機能します。
参考ページ:実装するフォームの種類を選択
&formid 参考ページ:フォームの識別子
&rules 参考ページ:フィールドの検証(チェック)内容を設定
&formControls 参考ページ:制御するフィールドの指定
&formTpl 参考ページ:入力フォームのHTMLテンプレート
&errorTpl 参考ページ:フィールドの表示するエラーメッセージのHTMLテンプレート
&requiredClass 参考ページ:フィールドの必須エラー時のクラス名
&errorClass 参考ページ:フィールドのエラー時のクラス名
&messagesOuterTpl 参考ページ:フォーム全体の表示するエラーメッセージのHTMLテンプレート
&isHtml 参考ページ:管理者宛通知メールのHTML形式の有無
&to 参考ページ:管理者宛通知メールの宛先を設定
&from 参考ページ:管理者宛通知メール/自動返信メールの送信元を設定
&fromName 参考ページ:管理者宛通知メールの送信元の名前を設定
&subjectTpl 参考ページ:管理者宛通知メールの件名を設定
&reportTpl 参考ページ:管理者宛通知メールの本文を設定
&ccSender 参考ページ:自動返信メールを送信するかどうか
&ccSenderFromName 参考ページ:自動返信メールの送信元の名前を設定
&ccSubjectTpl 参考ページ:自動返信メールの件名を設定
&ccSenderTpl 参考ページ:自動返信メールの本文を設定
&successTpl 参考ページ:フォーム送信完了後に表示するHTMLテンプレート

プレースホルダーについては次のページをご覧ください。
フォームやメールで使用するプレースホルダー

CMS「Evolution CMS」逆引きリファレンス一覧へ戻る