如何在CakePHP上测试HTML电子邮件模板?

时间:2012-09-19 19:28:39

标签: cakephp

要确认购买,我必须使用购物车详细信息向客户发送电子邮件。我想测试HTML模板以使用适当的CSS,当然还要检查到达它的数据。 我应该使用什么代码而不是设置电子邮件参数,以观察模板在电子邮件中的呈现方式?

我是CakePHP的新手,所以非常感谢你的帮助。

提前致谢。

〜何

5 个答案:

答案 0 :(得分:10)

这是CakePHP 1.3,但我觉得它也可以与2.0一起使用。虽然可能有其他方法可以做到,但我在任何控制器中创建测试操作,然后返回电子邮件模板的渲染调用。看看这个:

function email_test()
{
    $this->layout = 'email/html/default';
    $user = $this->User->findById(1);
    $this->set('name', $user['User']['firstname']);
    $this->set('email_heading', 'Welcome to My App');
    return $this->render('/elements/email/html/welcome');
}

此操作现在将在浏览器中显示您的电子邮件。

答案 1 :(得分:1)

使用调试传输进行测试。

如果你想让它更舒服编写自己的传输,在例如APP / tmp / email / .html中创建一个新的html文件。请参阅调试传输类作为参考,这很容易做到这一点{{3 }}

另见书 - > http://api20.cakephp.org/view_source/debug-transport#l-34

答案 2 :(得分:1)

    $this->Email->to = $user_id_array[0]['User']['email'];
    $this->Email->subject = $arrTemplate[0]['EmailTemplate']['subject'];
    $this->Email->replyTo = 'Admin<admin@indianic.com>';
    $this->Email->from = 'Admin<admin@indianic.com>';
    $this->Email->sendAs = 'html';
    $this->Email->template = '/elements/email/html/warning_message';

   $this->set('email_message',$arrTemplate[0]['EmailTemplate']['body']);
   $this->Email->send();

通过这种方式,您可以设置电子邮件模板

答案 3 :(得分:1)

这是我用来在浏览器中显示我要使用cakephp电子邮件类即App::uses('CakeEmail', 'Network/Email');发送的电子邮件的html /纯文本内容的简单方法。 只需在电子邮件模板文件或(电子邮件布局文件)末尾执行exit,然后尝试发送电子邮件。它将呈现电子邮件内容。

HTH。

答案 4 :(得分:0)

如果要在本地主机上打印电子邮件模板进行测试,则可以使用此代码。

$this->Email->send();
print_r($this->Email->htmlMessage);