diff --git a/app/Providers/MailServiceProvider.php b/app/Providers/MailServiceProvider.php index ef9e15fe9c93..01bebb0feab0 100644 --- a/app/Providers/MailServiceProvider.php +++ b/app/Providers/MailServiceProvider.php @@ -3,8 +3,10 @@ namespace App\Providers; use App\Helpers\Mail\GmailTransportManager; +use Coconuts\Mail\PostmarkTransport; use Illuminate\Mail\MailServiceProvider as MailProvider; use Illuminate\Mail\TransportManager; +use GuzzleHttp\Client as HttpClient; class MailServiceProvider extends MailProvider { @@ -24,7 +26,18 @@ class MailServiceProvider extends MailProvider $this->app->bind('mailer', function ($app) { return $app->make('mail.manager')->mailer(); }); - } + $this->app['mail.manager']->extend('postmark', function () { + return new PostmarkTransport( + $this->guzzle(config('postmark.guzzle', [])), + config('postmark.secret', config('services.postmark.secret')) + ); + }); + } + + protected function guzzle(array $config): HttpClient + { + return new HttpClient($config); + } } diff --git a/config/postmark.php b/config/postmark.php new file mode 100644 index 000000000000..93e185ade20b --- /dev/null +++ b/config/postmark.php @@ -0,0 +1,30 @@ + env('POSTMARK_SECRET'), + + /* + |-------------------------------------------------------------------------- + | Guzzle options + |-------------------------------------------------------------------------- + | + | Under the hood we use Guzzle to make API calls to Postmark. + | Here you may provide any request options for Guzzle. + | + */ + + 'guzzle' => [ + 'timeout' => 10, + 'connect_timeout' => 10, + ], +]; diff --git a/config/services.php b/config/services.php index ba7b192c3dcc..5997f3637790 100644 --- a/config/services.php +++ b/config/services.php @@ -36,9 +36,6 @@ return [ 'gmail' => [ 'token' => '', ], - 'postmark' => [ - 'token' => env('POSTMARK_API_TOKEN', ''), - ], 'stripe' => [ 'model' => App\Models\User::class, 'key' => env('STRIPE_KEY'),