From d662d5b210fad91fa2b3dc5ce95678868ae2c370 Mon Sep 17 00:00:00 2001 From: mabadir Date: Sun, 27 Dec 2020 03:08:21 -0500 Subject: [PATCH] Added SES Driver --- src/Drivers/Ses.php | 16 ++++++++++++ src/Http/Controllers/SesController.php | 22 ++++++++++++++++ .../Middleware/MailboxBasicAuthentication.php | 2 +- src/Http/Requests/SesRequest.php | 25 +++++++++++++++++++ src/MailboxManager.php | 6 +++++ 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/Drivers/Ses.php create mode 100644 src/Http/Controllers/SesController.php create mode 100644 src/Http/Requests/SesRequest.php diff --git a/src/Drivers/Ses.php b/src/Drivers/Ses.php new file mode 100644 index 0000000..66e7ed5 --- /dev/null +++ b/src/Drivers/Ses.php @@ -0,0 +1,16 @@ +group(function () { + Route::post('/ses', SesController::class); + }); + } +} diff --git a/src/Http/Controllers/SesController.php b/src/Http/Controllers/SesController.php new file mode 100644 index 0000000..b44b5f1 --- /dev/null +++ b/src/Http/Controllers/SesController.php @@ -0,0 +1,22 @@ +middleware('laravel-mailbox'); + } + + public function __invoke(SesRequest $request) + { + Mailbox::callMailboxes($request->email()); + } +} diff --git a/src/Http/Middleware/MailboxBasicAuthentication.php b/src/Http/Middleware/MailboxBasicAuthentication.php index 09020fc..95bae37 100644 --- a/src/Http/Middleware/MailboxBasicAuthentication.php +++ b/src/Http/Middleware/MailboxBasicAuthentication.php @@ -16,6 +16,6 @@ public function handle($request, Closure $next) return $next($request); } - throw new UnauthorizedHttpException('Laravel Mailbox'); + throw new UnauthorizedHttpException('Basic realm=Mailer','Laravel Mailbox'); } } diff --git a/src/Http/Requests/SesRequest.php b/src/Http/Requests/SesRequest.php new file mode 100644 index 0000000..c6265ae --- /dev/null +++ b/src/Http/Requests/SesRequest.php @@ -0,0 +1,25 @@ +getContent(), true), [ + 'Message' => 'required', + ]); + } + + public function email() + { + /** @var InboundEmail $modelClass */ + $modelClass = config('mailbox.model'); + + return $modelClass::fromMessage(json_decode(json_decode($this->getContent(), true)['Message'],true)['content']); + } +} diff --git a/src/MailboxManager.php b/src/MailboxManager.php index afd4901..a54ff7b 100644 --- a/src/MailboxManager.php +++ b/src/MailboxManager.php @@ -7,6 +7,7 @@ use BeyondCode\Mailbox\Drivers\Mailgun; use BeyondCode\Mailbox\Drivers\Postmark; use BeyondCode\Mailbox\Drivers\SendGrid; +use BeyondCode\Mailbox\Drivers\Ses; use Illuminate\Support\Manager; class MailboxManager extends Manager @@ -41,6 +42,11 @@ public function createPostmarkDriver() return new Postmark; } + public function createSESDriver() + { + return new Ses; + } + public function getDefaultDriver() { return $this->container['config']['mailbox.driver'];