From 03660dadacbeab226a8c05b082001350f0531b66 Mon Sep 17 00:00:00 2001 From: Louis Jeckel Date: Thu, 15 Oct 2020 13:21:10 +0200 Subject: [PATCH] batch email better tags + unbuscribe --- app/Events/DispatchMailgunEvent.php | 5 ++++- app/Http/Controllers/Admin/PublishController.php | 5 ++++- app/Jobs/ProcessEmailBatch.php | 4 ++-- app/Mail/BatchMail.php | 13 +++++++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/Events/DispatchMailgunEvent.php b/app/Events/DispatchMailgunEvent.php index 7242e7a..3ef9431 100644 --- a/app/Events/DispatchMailgunEvent.php +++ b/app/Events/DispatchMailgunEvent.php @@ -73,8 +73,11 @@ class DispatchMailgunEvent implements ShouldBroadcast $event->touch(); $this->data = $event; + /** + * @todo track unsubscribes + */ if($event->event === 'unsubscribed') { - $event->user->unsubscribe(); +// $event->user->unsubscribe(); } diff --git a/app/Http/Controllers/Admin/PublishController.php b/app/Http/Controllers/Admin/PublishController.php index 5eb5bd8..76788ff 100644 --- a/app/Http/Controllers/Admin/PublishController.php +++ b/app/Http/Controllers/Admin/PublishController.php @@ -41,7 +41,10 @@ class PublishController extends Controller $recipientGroup = Arr::get($data, 'recipient_group'); $batch->subject = Arr::get($data, 'email.subject'); - $batch->content = ['body' => Arr::get($data, 'email.content')]; + $batch->content = [ + 'body' => Arr::get($data, 'email.content'), + 'link' => Arr::get($data, 'email.link') + ]; $batch->file_id = Arr::get($data, 'file.id'); $batch->sent_to = []; diff --git a/app/Jobs/ProcessEmailBatch.php b/app/Jobs/ProcessEmailBatch.php index 54c2c99..3580bb5 100644 --- a/app/Jobs/ProcessEmailBatch.php +++ b/app/Jobs/ProcessEmailBatch.php @@ -103,7 +103,7 @@ class ProcessEmailBatch implements ShouldQueue $this->batch->content['body'], $this->batch->subject, $this->type, - null, + $this->batch->content['link'] ?? null, optional($this->batch->file)->coverUrl ))->render(); @@ -115,7 +115,7 @@ class ProcessEmailBatch implements ShouldQueue 'subject' => $this->batch->subject, 'recipient-variables' => $variables, 'html' => $view, - 'o:tag' => [$this->batch->getTag(), config('app.env').'_batch'], + 'o:tag' => [$this->batch->getTag(), config('app.env').'_batch_'.BatchMail::getView($this->type)], 'o:testmode' => config('mail.mailgun.test_mode', 'yes'), ]; diff --git a/app/Mail/BatchMail.php b/app/Mail/BatchMail.php index 69a05fe..65c2c2f 100644 --- a/app/Mail/BatchMail.php +++ b/app/Mail/BatchMail.php @@ -26,7 +26,7 @@ class BatchMail extends Mailable public const MAIL_TYPE_NEWSLETTER = 2; - protected array $viewMap = [ + public const VIEW_MAP = [ self::MAIL_TYPE_PDF_FILE => 'batch-pdf', self::MAIL_TYPE_NEWSLETTER => 'newsletter' ]; @@ -54,7 +54,7 @@ class BatchMail extends Mailable $this->image = $image; - $this->emailView = Arr::get($this->viewMap, $type ?? 0); + $this->emailView = self::getView($type); $this->content = $this->emailView === 'batch-pdf' ? (Html2Markdown::convert($content)) : @@ -65,6 +65,15 @@ class BatchMail extends Mailable } } + /** + * @param $id + * @return string + */ + public static function getView($id) + { + return Arr::get(self::VIEW_MAP, $id ?? 0); + } + /** * Build the message. * -- 2.39.5