From 90e1a949623ead173c0952f802d7b5c5487251b1 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Fri, 5 Oct 2018 15:35:14 +0200 Subject: Make application name configurable * Added app_name configuration option * Extended `EngelsystemMailer` to prepend the application name to all mails Closes #426 --- src/Mail/EngelsystemMailer.php | 40 ++++++++++++++++++++++++++++++++++++++ src/Mail/MailerServiceProvider.php | 3 ++- 2 files changed, 42 insertions(+), 1 deletion(-) (limited to 'src/Mail') diff --git a/src/Mail/EngelsystemMailer.php b/src/Mail/EngelsystemMailer.php index 17047cc8..81660681 100644 --- a/src/Mail/EngelsystemMailer.php +++ b/src/Mail/EngelsystemMailer.php @@ -10,6 +10,13 @@ class EngelsystemMailer extends Mailer /** @var Renderer|null */ protected $view; + /** @var string */ + protected $subjectPrefix = null; + + /** + * @param SwiftMailer $mailer + * @param Renderer $view + */ public function __construct(SwiftMailer $mailer, Renderer $view = null) { parent::__construct($mailer); @@ -32,4 +39,37 @@ class EngelsystemMailer extends Mailer return $this->send($to, $subject, $body); } + + /** + * Send the mail + * + * @param string|string[] $to + * @param string $subject + * @param string $body + * @return int + */ + public function send($to, string $subject, string $body): int + { + if ($this->subjectPrefix) { + $subject = sprintf('[%s] %s', $this->subjectPrefix, $subject); + } + + return parent::send($to, $subject, $body); + } + + /** + * @return string + */ + public function getSubjectPrefix(): string + { + return $this->subjectPrefix; + } + + /** + * @param string $subjectPrefix + */ + public function setSubjectPrefix(string $subjectPrefix) + { + $this->subjectPrefix = $subjectPrefix; + } } diff --git a/src/Mail/MailerServiceProvider.php b/src/Mail/MailerServiceProvider.php index 989fee8f..70725afd 100644 --- a/src/Mail/MailerServiceProvider.php +++ b/src/Mail/MailerServiceProvider.php @@ -28,9 +28,10 @@ class MailerServiceProvider extends ServiceProvider $this->app->instance(SwiftMailer::class, $swiftMailer); $this->app->instance('mailer.swift', $swiftMailer); - /** @var Mailer $mailer */ + /** @var EngelsystemMailer $mailer */ $mailer = $this->app->make(EngelsystemMailer::class); $mailer->setFromAddress($mailConfig['from']['address']); + $mailer->setSubjectPrefix($config->get('app_name')); if (!empty($mailConfig['from']['name'])) { $mailer->setFromName($mailConfig['from']['name']); } -- cgit v1.2.3-54-g00ecf