urchihe / laravel-mailjet
mailjet packages with wrapper
Requires
- php: >=7
- mailjet/mailjet-apiv3-php: ^1.4
- mailjet/mailjet-swiftmailer: ^2.0
Requires (Dev)
- fzaninotto/faker: ^1.9.1
- laravel/framework: ^7.0|^8.0
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^4.1
- orchestra/testbench: ^5.3
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2025-03-29 00:51:26 UTC
README
Laravel package for handling Mailjet API v3 using this wrapper: https://github.com/mailjet/mailjet-apiv3-php
It also provides a mailjetTransport for Laravel mail feature
Installation
First, include the package in your dependencies:
composer require urchihe/laravel-mailjet
Then, you need to add some informations in your configuration files. You can find your Mailjet API key/secret here
- In the services.php file:
'mailjet' => [ 'key' => env('MAILJET_APIKEY'), 'secret' => env('MAILJET_APISECRET'), 'transactional' => [ 'call' => true, 'options' => [ 'url' => 'api.mailjet.com', 'version' => 'v3.1', 'call' => true, 'secured' => true ] ], 'common' => [ 'call' => true, 'options' => [ 'url' => 'api.mailjet.com', 'version' => 'v3', 'call' => true, 'secured' => true ] ] ]
- In your .env file:
MAILJET_APIKEY=YOUR_APIKEY MAILJET_APISECRET=YOUR_APISECRET
Full configuration
'mailjet' => [ 'key' => env('MAILJET_APIKEY'), 'secret' => env('MAILJET_APISECRET'), 'transactional' => [ 'call' => true, 'options' => [ 'url' => 'api.mailjet.com', 'version' => 'v3.1', 'call' => true, 'secured' => true ] ], 'common' => [ 'call' => true, 'options' => [ 'url' => 'api.mailjet.com', 'version' => 'v3', 'call' => true, 'secured' => true ] ] ]
You can pass settings to MailjetClient.
transactional
: settings to sendAPI clientcommon
: setting to MailjetClient accessible throught the Facade Mailjet
Mail driver configuration
In order to use Mailjet as your Mail driver, you need to update the mail driver in your config/mail.php
or your .env
file to MAIL_MAILER=mailjet
, MAIL_HOST=in-v3.mailjet.com
, MAIL_PORT=2525
and to the mailers
array in config/mail
add
'mailjet' => [ 'transport' => 'mailjet', 'host' => env('MAIL_HOST'), 'port' => env('MAIL_PORT'), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, ],
.
For usage, please check the Laravel mail documentation
Usage
In order to usage this package, you first need to import Mailjet Facade in your code:
use Urchihe\LaravelMailjet\Facades\Mailjet;
Then, in your code you can use one of the methods available in the MailjetServices.
Low level API methods:
Mailjet::get($resource, $args, $options)
Mailjet::post($resource, $args, $options)
Mailjet::put($resource, $args, $options)
Mailjet::delete($resource, $args, $options)
High level API methods:
Mailjet::getAllLists($filters)
Mailjet::createList($body)
Mailjet::getListRecipients($filters)
Mailjet::getSingleContact($id)
Mailjet::createContact($body)
Mailjet::createListRecipient($body)
Mailjet::editListrecipient($id, $body)
For more informations about the filters you can use in each methods, refer to the Mailjet API documentation
All method return Mailjet\Response
or throw a MailjetException
in case of API error.
You can also get the Mailjet API client with the method getClient()
and make your own custom request to Mailjet API.
ToDo
- Add additional unit tests to increase code coverage.