CakePHP:在模型中生成CakeEmail模板输出

kupeojn6  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(127)

我正在创建一个延迟发送电子邮件的脚本。每当我安排一封电子邮件时,我都想把发送电子邮件所需的所有信息(收件人、主题、内容等)放在一个数据库表中。这样我的电子邮件发送脚本就可以简单地做一件事:发送电子邮件。它不必为不同的视图而烦恼,设置正确的视图变量,视图变量等等。每个模板都有不同的视图变量,我不想在发送电子邮件的cron中处理所有这些事情。所以,假设我想安排一封欢迎邮件:

// Schedule the welcome email from anywhere
$this->EmailLog->scheduleWelcomeEmail($member_id);

// EmailLog model
public function scheduleWelcomeEmail($member_id) {
    // lookup $member_id
    // uses 'welcome' template

    $data = array(
        'subject' => 'Welcome',
        'to' => $member['Member']['email'],
        'html' => // NEED RENDERED DATA FROM 'welcome' TEMPLATE
    );

    $this->create();
    $this->save($data);// SAVE the row - DO NOT actually send email
}

然后,在后台运行的cron将简单地从表行中获取未发送的电子邮件,设置适当的参数并发送它。
那么,我如何才能获得模型内部的渲染视图数据,并将其保存在变量中呢?或者,有没有更好的方法来实现这一点?

bvk5enib

bvk5enib1#

您好,这是一个错误的发送邮件的方式在cakephp中,我们不能访问或渲染模型中的视图。所以用另一种方法,您可以使用cakephp shell来发送邮件。下面的链接您读cakeshall。
http://book.cakephp.org/2.0/en/console-and-shells/cron-jobs.html
http://book.cakephp.org/2.0/en/console-and-shells/cron-jobs.html

相关问题