6

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

我是 CakePHP 的新手,非常感谢您的帮助。

提前致谢。

~何塞

4

5 回答 5

11

这是 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');
}

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

于 2012-09-20T19:52:11.680 回答
1

使用调试传输进行测试。

如果您想让编写自己的传输更舒适,例如在 APP/tmp/email/.html 中创建一个新的 html 文件,请参阅调试传输类作为参考,这样做很容易http://api20。 cakephp.org/view_source/debug-transport#l-34

另见本书 - > http://book.cakephp.org/2.0/en/core-utility-libraries/email.html#using-transports

于 2012-09-19T19:35:37.930 回答
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();

这样您就可以为电子邮件设置模板

于 2012-09-20T11:54:29.473 回答
1

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

HTH。

于 2016-07-26T09:58:59.290 回答
0

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

$this->Email->send();
print_r($this->Email->htmlMessage);
于 2019-03-18T05:54:50.710 回答