1

我无法获取电子邮件的内容。$content变量未填充。

$this->request->data['message']来自允许 HTML 的文本区域输入。

控制器

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();

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

<?php echo $content; ?>

我收到了电子邮件,但没有内容。如果我test_email.ctp改为:

Foo <?php echo $content; ?>

我只得到Foo而不是Fooplus $content

更新

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

array(
    'content' => 'foo bar here'
)
4

1 回答 1

0

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

$email->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->fetch('content');

于 2012-11-27T18:54:43.820 回答