私は遅延メール送信スクリプトを作成しています。電子メールのスケジュールを設定するたびに、電子メールを送信するために必要なすべての情報(to、subject、contentなど)をデータベーステーブルに配置したいと考えています。これは私の電子メール送信スクリプトが単に1つのことを行うことができるようにするためです。メールを送る。これは、異なるビューを気にする必要はありません、正しいビューのバールを設定する、など、各ビューアは、ビューのバールを持っています、私は送信メールcronでこれをすべて処理する必要はありません。それでは、私は歓迎メールをスケジュールしたいとしましょう:CakePHP:モデルでCakeEmailテンプレート出力を生成
// 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は、単純に、テーブルの行から未送信のメールをつかむ適切なパラメータを設定し、それを送信します。
したがって、モデル内のレンダリングされたビューデータを変数に保存するにはどうすればよいですか?または、これについてもっと良い方法がありますか?