TransmitMailは今まで使ったメールフォームで一番使いやすく、カスタマイズしやすいのでとても気に入ってます。ちょっと複雑な機能も簡単にできたりするので、ご紹介させていだだきます。

1.件名に入力内容を埋め込む

config.php を修正して件名に「お問い合わせ者の名前」を出力するカスタマイズ例

    require_once('lib/common.php');
    $_POST = delete_nullbyte($_POST);
    $_POST = safe_strip_slashes($_POST);
    define('TO_SUBJECT', '[テスト株式会社]お問い合わせ - ' . $_POST['お問い合わせの種類']);
    // 送信メール件名
    // define('TO_SUBJECT', 'サイトからお問い合わせ');
    require_once('lib/common.php');
    $_POST = delete_nullbyte($_POST);
    $_POST = safe_strip_slashes($_POST);
    if (!empty($_POST['お名前'])) {
        define('TO_SUBJECT', $_POST['お名前'] . '様からのお問い合わせ');
    } else {
        define('TO_SUBJECT', '(お名前未入力)様からのお問い合わせ');
    }

参照サイト:

2.確認画面が必要ない場合

input.htmlに下記の一文を追加する

    <input type="hidden" name="page" value="finish" />
    <input type="submit" value="入力内容を確認する" />

3.送信先アドレスの分岐

config.phpの17行目付近

    require_once('lib/common.php');
    $_POST = delete_nullbyte($_POST);
    $_POST = safe_strip_slashes($_POST);

    if ($_POST['お問い合わせ内容'] === '資料請求') {
        define('TO_EMAIL', 'document_request@example.jp');
    } elseif ($_POST['お問い合わせ内容'] === 'トライアル申し込み') {
        define('TO_EMAIL', 'trial@example.jp');
    } else {
        // 未選択の場合
        // 「お問い合わせ内容」を入力必須にしてもTransmitMailのシステム上は post を受け取れない場合があるので、必ず設定するようにしてください
        define('TO_EMAIL', 'info@example.jp');
    }

参照サイト:https://github.com/dounokouno/TransmitMail/issues/2#issuecomment-53384658

4.メールアドレスの一致チェック

メールアドレスの一致チェックする場合、簡易なチェックは 公式サイトの記述で問題ないです。

    <input type="text" name="メールアドレス" value="{$メールアドレス}" />
    <input type="text" name="メールアドレス確認" value="{$メールアドレス確認}" />
    <input type="hidden" name="match[]" value="メールアドレス メールアドレス確認" />
    {if:$match.メールアドレス}
    {$match.メールアドレス}
    {/if:$match.メールアドレス}

ただ、一致チェックを入力する際、下記の3つの条件を満たす場合は 少し工夫が必要なようです。下記のように記載してみてください。

  • 再入力がない場合エラーを出す
  • メールアドレスの書式をチェック
  • 一致チェック
    <input type="text" name="メールアドレス確認" value="{$メールアドレス確認}" class="middle" />
    <input type="hidden" name="required[]" value="メールアドレス確認" />
    {if:$required.メールアドレス確認}
    メールアドレスを再度入力してください
    {/if:$required.メールアドレス確認}
    <input type="hidden" name="email[]" value="メールアドレス確認" />
    {if:$email.メールアドレス確認}
    メールアドレスを再度入力してください
    {/if:$email.メールアドレス確認}
    <input type="hidden" name="match[]" value="メールアドレス メールアドレス確認" />
    {if:$match.メールアドレス}
    {$match.メールアドレス}
    {/if:$match.メールアドレス}

5.TransmitMailの一般的な設定

TransmitMailの標準的なカスタマイズは下記をご覧ください。

次の記事 前の記事