Passed
Push — master ( 16cc4b...9db413 )
by Viktor
01:52
created

Mailer::createSwiftSpoolMailer()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace izumi\spoolmailer;
4
5
use izumi\spoolmailer\spools\BaseSpool;
6
use yii\di\Instance;
7
use yii\mail\MessageInterface;
8
9
/**
10
 * Mailer with spool.
11
 *
12
 * @method Message|MessageInterface compose($view = null, array $params = [])
13
 * @author Viktor Khokhryakov <[email protected]>
14
 */
15
class Mailer extends \yii\swiftmailer\Mailer
16
{
17
    /**
18
     * @var string message default class name.
19
     */
20
    public $messageClass = 'izumi\spoolmailer\Message';
21
    /**
22
     * @var BaseSpool|string|array
23
     */
24
    public $spoolMailer = [
25
        'class' => 'izumi\spoolmailer\spools\FileSpool',
26
    ];
27
28
    /**
29
     * @inheritdoc
30
     */
31
    public function init()
32
    {
33
        parent::init();
34
        $this->spoolMailer = Instance::ensure($this->spoolMailer, BaseSpool::className());
35
    }
36
37
    /**
38
     * Add the given email message to queue.
39
     * This method will log a message about the email being queued.
40
     * @param MessageInterface $message email message instance to be queued
41
     * @return bool whether the message has been sent successfully
42
     */
43
    public function queue($message)
44
    {
45
        return $this->spoolMailer->send($message);
46
    }
47
48
    /**
49
     * Sends messages.
50
     * @param string[] $failedRecipients an array of failures by-reference
51
     * @return int the number of sent emails
52
     */
53
    public function flushQueue(&$failedRecipients = null)
54
    {
55
        return $this->spoolMailer->flush($this, $failedRecipients);
56
    }
57
}
58