/** * Sends email. * * @param string $action The name of the mailer action to trigger. * @param array $args Arguments to pass to the triggered mailer action. * @param array $headers Headers to set. * @return array * @throws \Cake\Mailer\Exception\MissingActionException * @throws \BadMethodCallException */ public function send($action, $args = [], $headers = []) { if (!method_exists($this, $action)) { throw new MissingActionException(['mailer' => $this->getName() . 'Mailer', 'action' => $action]); } $this->_email->setHeaders($headers); if (!$this->_email->viewBuilder()->template()) { $this->_email->viewBuilder()->template($action); } call_user_func_array([$this, $action], $args); $result = $this->_email->send(); $this->reset(); return $result; }
/** * Send notification * * @param \CvoTechnologies\Notifier\Notification $notification Notification instance. * @return array */ public function send(Notification $notification) { $email = new Email(); $email->profile($this->config('profile')); $email->to($notification->to(null, static::TYPE)); $email->subject($notification->title()); $email->viewBuilder()->templatePath($notification->viewBuilder()->templatePath()); $email->viewBuilder()->template($notification->viewBuilder()->template()); $email->viewBuilder()->plugin($notification->viewBuilder()->plugin()); $email->viewBuilder()->theme($notification->viewBuilder()->theme()); $email->viewBuilder()->layout($notification->viewBuilder()->layout()); $email->viewBuilder()->autoLayout($notification->viewBuilder()->autoLayout()); $email->viewBuilder()->layoutPath($notification->viewBuilder()->layoutPath()); $email->viewBuilder()->name($notification->viewBuilder()->name()); $email->viewBuilder()->className($notification->viewBuilder()->className()); $email->viewBuilder()->options($notification->viewBuilder()->options()); $email->viewBuilder()->helpers($notification->viewBuilder()->helpers()); $email->viewVars($notification->viewVars()); return $email->send(); }