【发布时间】:2019-03-18 14:02:14
【问题描述】:
要确认购买,我必须向客户发送一封电子邮件,其中包含她的购物车详细信息。我想测试 HTML 模板以使用适当的 CSS,当然还要检查到达它的数据。 我应该使用什么代码而不是设置电子邮件参数来观察模板在电子邮件上的呈现方式?
我是 CakePHP 的新手,非常感谢您的帮助。
提前致谢。
~何塞
【问题讨论】:
标签: cakephp
要确认购买,我必须向客户发送一封电子邮件,其中包含她的购物车详细信息。我想测试 HTML 模板以使用适当的 CSS,当然还要检查到达它的数据。 我应该使用什么代码而不是设置电子邮件参数来观察模板在电子邮件上的呈现方式?
我是 CakePHP 的新手,非常感谢您的帮助。
提前致谢。
~何塞
【问题讨论】:
标签: cakephp
这是 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');
}
此操作现在将在浏览器中呈现您的电子邮件。
【讨论】:
使用调试传输进行测试。
如果你想让它更舒适地编写自己的传输,例如在 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
【讨论】:
这是我用来在浏览器中显示我想使用 cakephp 电子邮件类发送的电子邮件的 html/纯文本内容的简单方法,即App::uses('CakeEmail', 'Network/Email');。
只需在电子邮件模板文件或(电子邮件布局文件)末尾添加exit,然后尝试发送电子邮件。它将呈现电子邮件内容。
HTH。
【讨论】:
$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();
这样就可以设置邮件模板了
【讨论】:
如果您想在本地主机上打印您的 电子邮件模板 进行测试,那么您可以使用此代码。
$this->Email->send();
print_r($this->Email->htmlMessage);
【讨论】: