Я не уверен, что это лучший способ продолжить, я обычно создаю метод в AppController:
protected function __sendMail($from,$to,$bcc,$subject,$replyto,$template,$attachments = array(),$headers = array()){
// SMTP Options
$this->Email->smtpOptions = array(
'port'=>MAIL_PORT,
'timeout'=>'30',
'host' => MAIL_HOST,
'username'=>SENDER_MAIL,
'password'=>SENDER_PASS
);
// Set delivery method
$this->Email->delivery = 'smtp';
$this->Email->SMTPAuth = true;
$this->Email->SMTPSecure = 'tls';
$this->Email->charset = 'UTF-8';
$this->Email->to = $to;
$this->Email->bcc = $bcc;
$this->Email->subject = $subject;
$this->Email->replyTo = $replyto;
$this->Email->from = $from;
$this->Email->template = $template;
$this->Email->header($headers);
//Send as 'html', 'text' or 'both' (default is 'text')
$this->Email->sendAs = 'both';
$this->Email->attachments = $attachments;
// Do not pass any args to send()
$this->Email->send();
// Check for SMTP errors.
$this->set('smtp_errors', $this->Email->smtpError);
}
Я помещаю его в AppController, потому что я использую его в разных контроллерах.Так что в вашем случае, id сохраните ссылку на контроллер (или передайте ее в качестве аргумента), что-то вроде
class RemoteComponent extends Object
{
function initialize(&$controller) {
$this->controller = $controller;
}
private function remote_connection_failed($data){
$this->controller->set('data',$data); //your data
$this->controller->__sendMail($from,$to,....);
}
или
class RemoteComponent extends Object
{
private function remote_connection_failed($data,$controller){
$controller->set('data',$data); //your data
$controller->__sendMail($from,$to,....);
}
Надеюсь, это поможет