Passed
Push — Auth ( 51f521...26ff7a )
by Stone
02:00
created

SendMail::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
nc 1
nop 1
dl 0
loc 16
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace App\Modules;
4
5
use Core\Container;
6
use Core\Modules\Module;
7
use Swift_Mailer;
8
use Swift_Message;
9
use Swift_SmtpTransport;
10
11
class SendMail extends Module{
12
13
    private $siteConfig;
14
15
    private $mailer;
16
    private $transport;
17
18
    public function __construct(Container $container)
19
    {
20
        parent::__construct($container);
21
22
        $config = new SiteConfig($this->container);
23
        $this->siteConfig = $config->getSiteConfig();
24
25
        // Create the Transport for mail sending
26
        //$config = $this->siteConfig->getSiteConfig();
27
        $this->transport = (new Swift_SmtpTransport($this->siteConfig["SMTP_server"], (int)$this->siteConfig["SMTP_port"]))
28
            ->setUsername($this->siteConfig["SMTP_user"])
29
            ->setPassword($this->siteConfig["SMTP_pass"])
30
        ;
31
32
        // Create the Mailer using your created Transport
33
        $this->mailer = new Swift_Mailer($this->transport);
34
35
    }
36
37
38
    public function send(string $to, string $subject, string $message)
39
    {
40
        // Create a message
41
        $message = (new Swift_Message($subject))
42
            ->setFrom([$this->siteConfig["SMTP_from"]])
43
            ->setTo([$to])
44
            ->setBody($message)
45
        ;
46
47
        // Send the message
48
        return $this->mailer->send($message);
49
    }
50
}