-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTemplateMailer.php
44 lines (39 loc) · 1.42 KB
/
TemplateMailer.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
namespace Snoob\Component\Mailer;
class TemplateMailer extends AbstractMailer
{
/**
* @var ContentGeneratorInterface
*/
protected $contentGenerator;
/**
* @param ContentGeneratorInterface $contentGenerator
*/
public function setContentGenerator(ContentGeneratorInterface $contentGenerator)
{
$this->contentGenerator = $contentGenerator;
}
/**
* @param TemplateMailInterface $message
*/
protected function generateMessageContent(TemplateMailInterface $message)
{
$templateLocation = $this->contentGenerator->getTemplateLocation($message->getTemplateReference());
if ($message->getSubject() === null) {
$message->setSubject($this->contentGenerator->getSubject($templateLocation, $message->getTemplateVars()));
}
$message->setBody($this->contentGenerator->getTextBody($templateLocation, $message->getTemplateVars()));
$message->addPart($this->contentGenerator->getHtmlBody($templateLocation, $message->getTemplateVars()));
}
/**
* {@inheritDoc}
*/
protected function preSend(\Swift_Mime_Message $message)
{
if (!$message instanceof TemplateMailInterface) {
throw new \RuntimeException('The message must implement the interface Template');
}
$message->setParametersFromMailer($this->getParameters());
$this->generateMessageContent($message);
}
}