Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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さんありがとうございます。
いつも便利に使わせて頂いております。

storesjp
インターネットビジネスの企画・開発・運営、マーケティング、プロモーション、コンテンツの企画・制作
https://about.stores.jp
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