* @since 2.0 */ abstract class BaseMessage extends Object implements MessageInterface { /** * @return \yii\mail\BaseMailer */ public function getMailer() { return Yii::$app->getComponent('email'); } /** * Initializes the object. * This method is invoked at the end of the constructor after the object is initialized with the * given configuration. */ public function init() { Yii::configure($this, $this->getMailer()->getDefaultMessageConfig()); } /** * @inheritdoc */ public function send() { return $this->getMailer()->send($this); } /** * @inheritdoc */ public function attachFile($fileName, $contentType = null, $attachFileName = null) { if (!file_exists($fileName)) { throw new InvalidParamException('Unable to attach file "' . $fileName . '": file does not exists!'); } if (empty($contentType)) { $contentType = FileHelper::getMimeType($fileName); } if (empty($attachFileName)) { $attachFileName = basename($fileName); } $content = file_get_contents($fileName); $this->createAttachment($content, $attachFileName, $contentType); } /** * @inheritdoc */ public function render($view, $params = []) { return $this->getMailer()->render($view, $params); } }