Files
yii2-usuario/lib/User/Service/MailService.php
Antonio Ramirez 4c9b9671b5 fixed all tests
2016-12-11 21:34:22 +01:00

67 lines
1.5 KiB
PHP

<?php
namespace Da\User\Service;
use Da\User\Contracts\ServiceInterface;
use Yii;
use yii\mail\BaseMailer;
class MailService implements ServiceInterface
{
protected $viewPath = '@Da/User/resources/views/mail';
protected $from;
protected $to;
protected $subject;
protected $view;
protected $params = [];
protected $mailer;
/**
* MailService constructor.
*
* @param string $from
* @param string $to
* @param string $subject
* @param string $view
* @param array $params
* @param MailerInterface $mailer
*/
public function __construct($from, $to, $subject, $view, array $params, BaseMailer $mailer)
{
$this->from = $from;
$this->to = $to;
$this->subject = $subject;
$this->view = $view;
$this->params = $params;
$this->mailer = $mailer;
$this->mailer->setViewPath($this->viewPath);
$this->mailer->getView()->theme = Yii::$app->view->theme;
}
/**
* @param $name
* @param $value
*
* @return $this
*/
public function setViewParam($name, $value)
{
$this->params[$name] = $value;
return $this;
}
/**
* @return bool
*/
public function run()
{
return $this->mailer
->compose(['html' => $this->view, 'text' => "text/{$this->view}"], $this->params)
->setFrom($this->from)
->setTo($this->to)
->setSubject($this->subject)
->send();
}
}