CakeEmail不发送变量

时间:2012-11-23 15:20:06

标签: php cakephp cakephp-2.0

我无法获取电子邮件的内容。 <{1}}变量未填充。

$content来自textarea输入,允许使用HTML。

控制器

$this->request->data['message']

查看/电子邮件/ HTML / test_email.ctp

debug($this->request->data['mensagem']); // Output: <p>\n\ttssseste<\/p>\n

App::uses('CakeEmail', 'Network/Email');

$email = new CakeEmail();
$email->emailFormat('html');
$email->from(array('noreply@domain.com' => 'System'));
$email->to($this->AuthExtended->user('email'));
$email->subject(__('Sample email'));
$email->template('test_email');
$email->viewVars(array('content' => $this->request->data['mensagem']));
$email->send();

我收到了电子邮件但没有内容。如果我将<?php echo $content; ?> 更改为:

test_email.ctp

我只获得Foo <?php echo $content; ?> 而不是FooFoo

更新

$content之后我尝试使用显示我的“已发布”变量的$email->viewVars(array('content' => $this->request->data['mensagem']));进行调试,但视图中没有任何内容。

debug($email->viewVars());

1 个答案:

答案 0 :(得分:0)

要发送模板化电子邮件,请使用:

$ email-&gt; template('test_email_view','test_email');

这里test_email_view是视图文件放在app / View / Emails / html / test_email_view.ctp中 并在此处放置您要在电子邮件正文消息中查看的代码

和test_email是你的布局文件app / View / Layouts / Emails / html / test_email.ctp 并将echo $ this-&gt; fetch('content');