Мне удалось сделать это следующим образом
class ExampleShell extends Shell {
var $uses = array('User');
var $Controller = null;
function __construct(&$dispatch) {
App::import('Core', 'Controller');
App::import('Controller', 'App');
$this->Controller = & new Controller();
App::import('Component', 'Email');
$this->Email = new EmailComponent();
$this->Email->initialize($this->Controller);
parent::__construct($dispatch);
}
function main() {
$users = $this->User->find('all');
$this->Controller =& new Controller();
$this->Email =& new EmailComponent(null);
$this->Email->initialize($this->Controller);
$this->Email->reset();
$this->Email->to = 'xx<xx@xx.com>';
$this->Email->subject = "Subject";
$this->Email->sendAs = "both";
$this->Controller->set('users', $users);
$this->Email->send(null, 'template_1');
}
}
Надеюсь, это кому-нибудь поможет.
Убедитесь, что шаблон расположен там, где он должен быть app/views/elements/email/html/template_1.ctp
и app/views/elements/email/text/template_1.ctp
для текстовой версии. Вы должны создать макеты тоже в app/views/layouts/email/html/default.ctp
и app/views/layouts/email/text/default.ctp