PHPでメールのテンプレートを読み込んで送信

smartyとか使うといいらしいが、それほどじゃないときに。

mb_language("ja");
mb_internal_encoding("UTF-8");

$toaddr = "$email";  // 宛先
$fromaddr = "From: " . mb_encode_mimeheader ('"送信者の名前"') .  "";
$subject = "メールの件名";

// テンプレートからメール本文の読み込み
ob_start();
require_once 'mailbody.tpl';
$mailbody = ob_get_contents();
ob_end_clean();

// 本文の文字列置き換え
$mailbody = str_replace ("%name%", $name, $mailbody);
$mailbody = str_replace ("%email%", $email, $mailbody);

$mailbody = mb_convert_encoding ($mailbody, "iso-2022-jp", "UTF-8");
mb_send_mail ($toaddr, $subject, $mailbody, $fromaddr);


メールの本文(mailbody.tpl)

%name% さま

%email% へ返信を送ります。


str_replace は array でもいいので、

$target = array("%name%", "%email%" );
$replace = array($name, $email);
$mailbody = str_replace ( $target, $replace, $mailbody );

も可。