php邮件使用模板

seo*_*ppc 2 php

可能重复:
将php文件加载到变量时出现问题(加载php代码的结果而不是代码作为字符串)

跟我有点困惑......

消息提醒功能

public static function MsgAlert($email, $name, $subject, $message)
{
    $msg = include('mailer.php');

    $subject = 'New Message';

    if ($email != '' && validate_email($email))
    {
        $mailer = new PHPMailer();

        $mailer->SetFrom(ADMIN_EMAIL, SITE_NAME);
        $mailer->AddAddress($email);
        $mailer->Subject = $subject;
        $mailer->Body = Postman::nl2br($msg);
        $mailer->AltBody = $msg;
        $mailer->Send();
    }
}
Run Code Online (Sandbox Code Playgroud)

我已将我的简报设计放入mailer.php,请检查标记...

mailer.php

<div>
<h1><?php $subject; ?><span>27 September 2011 at 6:26 pm</span></h1>
<div>
<p>Hello <?php $name; ?>,</p>
<?php $message; ?>
</div> <!--message container -->
</div>
Run Code Online (Sandbox Code Playgroud)

我使用正确的方法还是应该做更好的事情,因为它不起作用.请建议.谢谢.

mid*_*dus 5

您不能包含变量,但您可以使用php的输出缓冲函数来实现所需的结果,例如:

ob_start();
include 'mailer.php';
$msg = ob_get_clean();
Run Code Online (Sandbox Code Playgroud)

这将呈现模板并将结果存储在其中$msg.


Mar*_*c B 5

include()不包括任何你包括的东西.成功返回true(包含/执行文件)或false(无法包含文件).根据您当前的结构,您需要这样:

ob_start();
include('mailer.php');
$msg = ob_get_clean();
Run Code Online (Sandbox Code Playgroud)

捕获mailer.php脚本的输出,因为它包含在内.