TransmitMail 2 の送信メールの件名に POST パラメータを利用するカスタマイズ例をご紹介します。
開発および動作確認環境
開発および動作確認環境は下記の通りです。
- TransmitMail: 2.0.0
- PHP: 5.6.10
input.html に入力フィールドを追加する
input.html に下記のような入力フィールドを追加します。
<table>
<tr>
<th>お名前</th>
<td>
<input type="text" name="お名前" value="{$お名前}">
</td>
</tr>
</table>
config.yml を修正する
config/config.yml の to_subject は お問い合わせ とします。
config:
to_subject: お問い合わせ
exTransmitMail.php を作成する
TransmiMail クラスを継承した exTransmiMail クラスを lib/exTransmitMail.php に作成します。
<?php
class exTransmitMail extends TransmitMail
{
}
exTransmitMail クラスに機能を実装する
メール送信の前の処理となる afterSetTemplateProperty メソッドを追加し、そこに処理を書いていきます。( afterXXX メソッドについては Wiki をご参照ください。)
/**
* メール送信の前の処理
*/
public function afterSetTemplateProperty()
{
if ($this->page_name === 'finish') {
if (!empty($this->post['お名前'])) {
$this->config['to_subject'] = $this->post['お名前'] . '様からの' . $this->config['to_subject'];
}
}
}
index.php を修正する
index.php に lib/exTransmitMail.php の読み込みと TransmitMail クラスではなく exTransmitMail クラスを利用するように修正します。
<?php
require_once 'lib/TransmitMail.php';
require_once 'lib/exTransmitMail.php';
$tm = new exTransmitMail('config/config.yml');
$tm->run();
動作確認
メールの件名に お名前 の内容が入っていることが確認できました。
まとめ
以上、TransmitMail 2 の送信メールの件名に POST パラメータを利用するカスタマイズ例をご紹介でした。こんな感じでカスタマイズすることで、TransmitMail本体には手を加えずにカスタマイズすることが可能です。
今回のカスタマイズのコードは下記ブランチで公開をしています。
dounokouno/TransmitMail at example_dynamic_mail_subject
修正ファイルは下記のコミットをご参照ください。
送信メールの件名に「お名前」フィールドの値を挿入するカスタマイズ例 · dounokouno/TransmitMail@85d82f2
