Passed
Pull Request — master (#91)
by Alexander
15:01
created

ContactMailer   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 19
c 1
b 0
f 0
dl 0
loc 36
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A send() 0 25 2
1
<?php
2
3
4
namespace App\Contact;
5
6
use Yiisoft\Mailer\MailerInterface;
7
8
/**
9
 * ContactMailer sends an email from the contact form
10
 */
11
class ContactMailer
12
{
13
    private MailerInterface $mailer;
14
    private string $to;
15
16
    public function __construct(MailerInterface $mailer, string $to)
17
    {
18
        $this->mailer = $mailer;
19
        $this->to = $to;
20
    }
21
22
    public function send(Message $contactMessage)
23
    {
24
        $message = $this->mailer->compose(
25
            'contact',
26
            [
27
                'name' => $contactMessage->getName(),
28
                'content' => $contactMessage->getContent(),
29
            ]
30
        )
31
            ->setSubject($contactMessage->getSubject())
32
            ->setFrom($contactMessage->getEmail())
33
            ->setTo($this->to);
34
35
        $files = $contactMessage->getFiles();
36
        foreach ($files as $file) {
37
            $message->attachContent(
38
                (string)$file->getStream(),
39
                [
40
                    'fileName' => $file->getClientFilename(),
41
                    'contentType' => $file->getClientMediaType(),
42
                ]
43
            );
44
        }
45
46
        $message->send();
47
    }
48
}
49