TransmitMailでよく使うカスタマイズ
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', '(お名前未入力)様からのお問い合わせ');
}
参照サイト:
- http://qiita.com/Katsumata_RYO/items/f5121d8b381198c6739f
- https://github.com/dounokouno/TransmitMail/issues/2#issuecomment-53384658
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の標準的なカスタマイズは下記をご覧ください。