thedoctor0/laravel-mailjet-driver

Laravel mail driver package for Mailjet and wrapper for its API. Supports Laravel 5.x, 6.x, 7.x. and 8.x

1.0.3 2020-09-09 08:10 UTC

This package is auto-updated.

Last update: 2021-07-29 21:46:49 UTC


README

Build Status Packagist Packagist License

Laravel mail driver package for Mailjet. It also serves as a wrapper for Mailjet API v3.

Installation

First, include the package in your dependencies:

composer require thedoctor0/laravel-mailjet-driver

If you are using Laravel before version 5.5 that supports Package Auto-Discovery, you need to add provider and alias manually to config/app.php.

  • In the providers array:
'providers' => [
    ...
    Mailjet\LaravelMailjet\MailjetServiceProvider::class,
    Mailjet\LaravelMailjet\MailjetMailServiceProvider::class,
    ...
]
  • In the aliases array:
'aliases' => [
    ...
    'Mailjet' => Mailjet\LaravelMailjet\Facades\Mailjet::class,
    ...
]

Configuration

You can find your Mailjet API key / secret here.

Change default mail driver and add new variables to your .env file:

MAIL_DRIVER=mailjet

MAILJET_APIKEY=YOUR_APIKEY
MAILJET_APISECRET=YOUR_APISECRET

Add section to the config/services.php file:

'mailjet' => [
    'key' => env('MAILJET_APIKEY'),
    'secret' => env('MAILJET_APISECRET'),
],

Make sure that in config/mail.php as mail sender address you are using a authorised email address configured on your Mailjet account.

Your available Mailjet email addresses and domains can be managed here.

For Laravel 7+ you also need to specify new available mail driver in config/mail.php:

'mailers' => [
    ...

    'mailjet' => [
        'transport' => 'mailjet',
    ],
],

Optional configuration

You can add full configuration for MailjetClient to the config/services.php file.

  • transactional: settings to sendAPI client
  • common: setting to MailjetClient accessible throught the Facade Mailjet
'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
        ],
    ],
],

API Wrapper usage

In order to API wrapper from this package, you first need to import Mailjet Facade in your code:

use Mailjet\LaravelMailjet\Facades\Mailjet;

Then you can use one of the methods available in the MailjetServices class.

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)

All method return Mailjet\Response or throw a MailjetException in case of any API error.

You can also get the Mailjet API client with the method getClient() and make your own custom request to Mailjet API.

For more information please refer to the official Mailjet API documentation.