diff --git a/framework/mail/BaseMailer.php b/framework/mail/BaseMailer.php index 993e702..c3d7d44 100644 --- a/framework/mail/BaseMailer.php +++ b/framework/mail/BaseMailer.php @@ -188,7 +188,6 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont $message->setTextBody(strip_tags($html)); } } - return $message; } @@ -205,7 +204,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont if (!array_key_exists('class', $config)) { $config['class'] = $this->messageClass; } - + $config['mailer'] = $this; return Yii::createObject($config); } diff --git a/framework/mail/BaseMessage.php b/framework/mail/BaseMessage.php index 2b7b832..5b1071f 100644 --- a/framework/mail/BaseMessage.php +++ b/framework/mail/BaseMessage.php @@ -24,14 +24,26 @@ use Yii; abstract class BaseMessage extends Object implements MessageInterface { /** - * @inheritdoc + * @var MailerInterface the mailer instance that created this message. + * For independently created messages this is `null`. + */ + public $mailer; + + + /** + * Sends this email message. + * @param MailerInterface $mailer the mailer that should be used to send this message. + * If no mailer is given it will first check if [[mailer]] is set and if not, + * the "mail" application component will be used instead. + * @return boolean whether this message is sent successfully. */ public function send(MailerInterface $mailer = null) { - if ($mailer === null) { + if ($mailer === null && $this->mailer === null) { $mailer = Yii::$app->getMail(); + } elseif ($mailer === null) { + $mailer = $this->mailer; } - return $mailer->send($this); } @@ -47,7 +59,6 @@ abstract class BaseMessage extends Object implements MessageInterface return $this->toString(); } catch (\Exception $e) { trigger_error($e->getMessage() . "\n\n" . $e->getTraceAsString()); - return ''; } }