* @since 2.0 */ abstract class BaseMessage extends Object implements MessageInterface { /** * @return \yii\mail\BaseMailer mailer component instance. */ public function getMailer() { return Yii::$app->getComponent('mail'); } /** * @inheritdoc */ public function send() { return $this->getMailer()->send($this); } /** * @inheritdoc */ public function body($body) { if (is_array($body)) { $this->html($body['html']); $this->text($body['text']); } else { $this->html($body); $this->text(strip_tags($body)); } return $this; } /** * @inheritdoc */ public function renderHtml($view, $params = []) { $this->html($this->getMailer()->render($view, $params, $this->getMailer()->htmlLayout)); return $this; } /** * @inheritdoc */ public function renderText($view, $params = []) { $this->text($this->getMailer()->render($view, $params, $this->getMailer()->textLayout)); return $this; } /** * @inheritdoc */ public function renderBody($view, $params = []) { if (is_array($view)) { $this->renderHtml($view['html'], $params); $this->renderText($view['text'], $params); } else { $html = $this->getMailer()->render($view, $params, $this->getMailer()->htmlLayout); $this->body($html); } return $this; } /** * PHP magic method that returns the string representation of this object. * @return string the string representation of this object. */ public function __toString() { // __toString cannot throw exception // use trigger_error to bypass this limitation try { return $this->toString(); } catch (\Exception $e) { trigger_error($e->getMessage()); return ''; } } }