SMARTYは「テンプレートエンジン」だけど「WEBページの」とついていないのはWEB以外のテンプレートとして使って良いってことなんだと解釈しています。・・・と言うのも、fetchメソッドがあるため、作成したデータを変数に出力できてしまうので、いくらでも出力先は選べるってことで、とりあえずメールのテンプレートとして使ってみます。
smarty.mail
こんにちは!{$name}さん。 {* 変数を使ってみたりします。 *}
■■■■■■■■■■■■■■■■■
このメールは、テスト送信メールです。
■■■■■■■■■■■■■■■■■
ま、こんな感じのメールをテンプレート用
フォルダに保存しておきます。
mail_send.php
<?PHP
define(”DOCUMENT_ROOT_DIR”, “/home/aaaa/public_html/smartymail”);
define(”ROOT_DIR”, “/home/aaaa/public_html/smartymail”);
define(”SEND_MAIL_ADDRESS”, “xxxx@njcfactory.com”);
define(”MAIL_ADDRESS”, “yyyy@njcfactory.com”);
// 「aaaa」およびメールアドレスは、各自の環境にあわせて設定してください。
//
require_once(”SMT.php”); //SMARTYの定義はここを参照。
$o_smarty =& NEW SMT();
$o_smarty->assign(”name”,”ひきこもり中の猫”);
$body=$o_smarty->fetch(”smarty.mail”); //テンプレートを変数に代入
$subject=”メールを送信”;
mb_send_mail(MAIL_ADDRESS,$subject,$body,”From:”.SEND_MAIL_ADDRESS,”-f “.SEND_MAIL_ADDRESS);
// MAIL_ADDRESS : 送信先のメールアドレス
// SEND_MAIL_ADDRESS : 送信元のメールアドレス
?>
define(”DOCUMENT_ROOT_DIR”, “/home/aaaa/public_html/smartymail”);
define(”ROOT_DIR”, “/home/aaaa/public_html/smartymail”);
define(”SEND_MAIL_ADDRESS”, “xxxx@njcfactory.com”);
define(”MAIL_ADDRESS”, “yyyy@njcfactory.com”);
// 「aaaa」およびメールアドレスは、各自の環境にあわせて設定してください。
//
require_once(”SMT.php”); //SMARTYの定義はここを参照。
$o_smarty =& NEW SMT();
$o_smarty->assign(”name”,”ひきこもり中の猫”);
$body=$o_smarty->fetch(”smarty.mail”); //テンプレートを変数に代入
$subject=”メールを送信”;
mb_send_mail(MAIL_ADDRESS,$subject,$body,”From:”.SEND_MAIL_ADDRESS,”-f “.SEND_MAIL_ADDRESS);
// MAIL_ADDRESS : 送信先のメールアドレス
// SEND_MAIL_ADDRESS : 送信元のメールアドレス
?>
メールの送信にはmb_send_mailを使用します。
第4パラメータの「 -f 送信元パラメータ」は、Return-Pathを指定するものです。
(指定しないとカラになり、受信を拒否するサーバーがあったので設定するようにしています。)
テンプレートにするメリット
・PHPソース上で、メールを書く必要がなくなるために、可読性が高くなる。
・テキストファイルと違うところは、変数が使用可能であるため、
大量に異なる場所に送る場合に内容の一部を変更して送ることが可能。
・その他foreachなどSMARTYの機能を使って表示の編集をテンプレート
上でできるので、記述内容が省略できる。
・テキストファイルと違うところは、変数が使用可能であるため、
大量に異なる場所に送る場合に内容の一部を変更して送ることが可能。
・その他foreachなどSMARTYの機能を使って表示の編集をテンプレート
上でできるので、記述内容が省略できる。
テンプレートにするデメリット
・ソース上の編集行数が減るため、どこでメールを編集しているのか
知らない人が見るとわかりづらいかも。
・とにかくSMARTYの使い方を知らないとメリットが少ない。
知らない人が見るとわかりづらいかも。
・とにかくSMARTYの使い方を知らないとメリットが少ない。
注意事項
・テンプレートとPHPソースの文字コードにご注意ください。
(当環境では、EUC-JPを使用しています。)
・コメントを入れる場合は、そのままだとコメントの後ろの改行は
コメントと一緒にSMARTYによって削除されてしまうため、
コメント後にスペース等を入れてこれを回避する必要がある。
(当環境では、EUC-JPを使用しています。)
・コメントを入れる場合は、そのままだとコメントの後ろの改行は
コメントと一緒にSMARTYによって削除されてしまうため、
コメント後にスペース等を入れてこれを回避する必要がある。
TrackBack URI : http://njcfactory.com/bbg/wp-trackback.php?p=175
Comments (0)