DektriumMailer.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: andri
  5. * Date: 26.10.17
  6. * Time: 12:56
  7. */
  8. namespace app\components;
  9. use dektrium\user\Mailer;
  10. use Yii;
  11. class DektriumMailer extends Mailer
  12. {
  13. /**
  14. * @param string $to
  15. * @param string $subject
  16. * @param string $view
  17. * @param array $params
  18. *
  19. * @return bool
  20. */
  21. public function sendMessage($to, $subject, $view, $params = [])
  22. {
  23. /** @var \yii\swiftmailer\Mailer $mailer **/
  24. $mailer = $this->mailerComponent === null ? Yii::$app->mailer : Yii::$app->get($this->mailerComponent);
  25. $mailer->viewPath = $this->viewPath;
  26. $mailer->getView()->theme = Yii::$app->view->theme;
  27. if ($this->sender === null) {
  28. $this->sender = isset(Yii::$app->params['adminEmail']) ?
  29. Yii::$app->params['adminEmail']
  30. : 'no-reply@example.com';
  31. }
  32. return $mailer->compose(['html' => $view, 'text' => 'text/' . $view], $params)
  33. ->setTo($to)
  34. ->setFrom($this->sender)
  35. ->setSubject($subject)
  36. ->send();
  37. }
  38. }