3
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

TransmitMailの件名に入力内容を埋め込む

Transmit Mail の 非公式な編集です

 TransmitMailがすごくいいので個人のWEBサイトの制作でよく使わせていただくんですが、今回件名に入力内容を埋め込む必要があったのでメモしてみました(色々ハマってみました)。

※ 非公式な修正です。フォームなので注意して下さい。
※ 私はPHPは全くわかりません。

TransmitMailとは

dounokounoさん作成のCopyright表示不要のPHP製汎用メールフォームシステムです。
github: https://github.com/dounokouno/TransmitMail

編集するファイル

input.htmlとconf/config.phpの2ファイルになります。
今回は、ラジオボタンで選択した問い合わせ内容がメールの件名に入るという内容で記載します。

input.html

フォームパーツの部分を該当箇所のみ抜粋します。

input.html
<tr class="form">
  <th class="form">お問い合せの種類<span class="notice">*<span></th>
  <td>
    <input class="form" type="radio" name="お問い合わせの種類" value="項目1" id="radio1" {$checked.お問い合わせの種類.項目1} {$checked.default} />
    <label for="radio1">項目1</label><br >
    <input class="form" type="radio" name="お問い合わせの種類" value="項目2" id="radio2" {$checked.お問い合わせの種類.項目2} />
    <label for="radio2">項目2</label><br >
    <input class="form" type="radio" name="お問い合わせの種類" value="項目3" id="radio3" {$checked.お問い合わせの種類.項目3} />
    <label for="radio3">項目3</label><br >
  </td>
</tr>

このような感じ。

config.php

25行目くらいの件名の設定のところを以下の様子で編集します。

config.php
require_once('lib/common.php');
$_POST = delete_nullbyte($_POST);
$_POST = safe_strip_slashes($_POST);
define('TO_SUBJECT', '[テスト株式会社]お問い合わせ - ' . $_POST['お問い合わせの種類']);

説明

$_POST がフォームで記入された文字列を抱え込んでいるようなので、おそらくこの連想配列と思われるデータ群の中から欲しい文字列のキーを指定してあげると取得できるご様子です。

キーはinput.htmlにある一連にパーツのなかで、inputタグのname属性となっています。

あとはconfig.phpのdefineでTO_SUBJECTという定数が指定されているところに、作成したい件名と文字列を 連結してあげれば完了です。

最後に

Transmit Mailの作者さんであるdounokounoさんありがとうございます。
いつも便利に使わせて頂いております。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?