adrashyawarrior / laravel-multi-mailer
This package allows laravel project to integrate multiple mail providers on priority bases.
v1.0.0
2023-02-11 12:18 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- mailgun/mailgun-php: ^3.5
- sendgrid/sendgrid: ^8.0
- sendinblue/api-v3-sdk: ^8.4
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2025-03-10 00:44:49 UTC
README
AdrashyaWarrior Laravel Multi-Mailer is a package built on top of mailgun, sendinblue & sendgrid email providers.
STEP(1): Installation
Go to your project's root directory and run
composer require adrashyawarrior/laravel-multi-mailer
STEP(2): Update .env
Add the following environment varables
# priority MAILERS=sendgrid,mailgun,sendinblue # Mailgun MAILGUN_API_KEY='' MAILGUN_HOSTNAME='' MAILGUN_DOMAIN='' # Sendinblue SENDINBLUE_API_KEY='' # Sendgrid SENDGRID_API_KEY=''
STEP(3): Usage
Inside your controller
<?php namespace App\Http\Controllers; use Adrashyawarrior\LaravelMultiMailer\LaravelMultiMailer; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; use Illuminate\Support\Facades\Log; class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; public function sendmail() { try { $mailer = new LaravelMultiMailer(); $mailer->from('shiva@gmail.com', 'Shaiva Sh'); $mailer->to(['krishna@gmail.com']); $mailer->cc(['radha@gmail.com']); $mailer->bcc(['sudama@gmail.com']); $mailer->subject('Testing New Package'); $mailer->html('<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>This is a testing mail.</h1> </body> </html>'); $response = $mailer->send(); return response()->json($response); } catch (\Exception $e) { Log::info($e->getMessage()); return response('Error'); } } }
Congrats! Done.
You are all set to send emails.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.