| <?php |
|
|
| namespace Kanboard\Core\Mail; |
|
|
| use Kanboard\Job\EmailJob; |
| use Pimple\Container; |
| use Kanboard\Core\Base; |
|
|
| |
| |
| |
| |
| |
| |
| class Client extends Base |
| { |
| |
| |
| |
| |
| |
| |
| private $transports; |
|
|
| |
| |
| |
| |
| |
| |
| public function __construct(Container $container) |
| { |
| parent::__construct($container); |
| $this->transports = new Container; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public function send($recipientEmail, $recipientName, $subject, $html, $authorName = null, $authorEmail = null) |
| { |
| if (! empty($recipientEmail)) { |
| $this->queueManager->push(EmailJob::getInstance($this->container)->withParams( |
| $recipientEmail, |
| $recipientName, |
| $subject, |
| $html, |
| is_null($authorName) ? $this->getAuthorName() : $authorName, |
| is_null($authorEmail) ? $this->getAuthorEmail() : $authorEmail |
| )); |
| } |
|
|
| return $this; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getAuthorName() |
| { |
| $author = 'Kanboard'; |
|
|
| if ($this->userSession->isLogged()) { |
| $author = e('%s via Kanboard', $this->helper->user->getFullname()); |
| } |
|
|
| return $author; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getAuthorEmail() |
| { |
| if ($this->userSession->isLogged()) { |
| $userData = $this->userSession->getAll(); |
| return ! empty($userData['email']) ? $userData['email'] : ''; |
| } |
|
|
| return ''; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getTransport($transport) |
| { |
| return $this->transports[$transport]; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function setTransport($transport, $class) |
| { |
| $container = $this->container; |
|
|
| $this->transports[$transport] = function () use ($class, $container) { |
| return new $class($container); |
| }; |
|
|
| return $this; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function getAvailableTransports() |
| { |
| $availableTransports = $this->transports->keys(); |
| return array_combine($availableTransports, $availableTransports); |
| } |
| } |
|
|