2011年2月16日水曜日

CakePHP1.3 Emailコンポーネントのカスタマイズ

アクシスおおくまです。

CakePHPを使っての開発案件で
Emailコンポーネントを使用する機会があったのですが
付属のEmailコンポーネントではViewの分離が今一つ。

と言うのも、今使用しているCakePHP1.3.6では
テンプレート、レイアウトをメール本文に使用することはできるけど
問い合わせフォームの返信メールのように
決まった箇所に個別の変数を割り当てることができない。

そこで、こんな感じでメールが送れるようにカスタマイズしてみた。

コントローラで

$this->MyEmail->send(array(
    'name' => $this->data['Inquiry']['name'],
    'ruby' => $this->data['Inquiry']['ruby'],
    'tel' => $this->data['Inquiry']['tel'],
    'mail' => $this->data['Inquiry']['mail'],
    'msg' => $this->data['Inquiry']['msg'],
), 'inquiries_template', 'inquiries_layout');


と書いて、テンプレートで

■ 氏名
  <?php echo $name; ?>

■ フリガナ
  <?php echo $ruby; ?>

■ 電話
  <?php echo $tel; ?>

■ メールアドレス
  <?php echo $mail; ?>

■ 内容

<?php echo $msg; ?>
 


とすれば該当する変数が置き換わるというもの。
これでViewの分離を保てるのでメールテンプレートの編集も
FTPが使える人なら少しやり方を教えるだけで大丈夫。

0 件のコメント:

コメントを投稿