LaravelPackages.net
Acme Inc.
Toggle sidebar
mailjet/laravel-mailjet

Laravel package for Mailjet API V3 and Laravel Mailjet Mail Transport

1.866.252
110
3.2.0
About mailjet/laravel-mailjet

mailjet/laravel-mailjet is a Laravel package for laravel package for mailjet api v3 and laravel mailjet mail transport. It currently has 110 GitHub stars and 1.866.252 downloads on Packagist (latest version 3.2.0). Install it with composer require mailjet/laravel-mailjet. Discover more Laravel packages by mailjet or browse all Laravel packages to compare alternatives.

Last updated

Mailjet

Laravel Mailjet

Fluent Mailjet APIΒ v3 integration & mail transport for Laravel.

Send transactional mail through the Laravel Mail facade, or talk to the full Mailjet REST API β€” contacts, lists, campaigns, templates and webhooks β€” with an expressive wrapper.


Latest Version Total Downloads PHP Version Laravel License


Table of contents


Features

  • πŸ“¨ Drop-in mail transport β€” set one env var and every Mailable / Notification goes through Mailjet.
  • 🧩 Full API v3 wrapper β€” low-level get / post / put / delete plus high-level helpers, built on the official mailjet/mailjet-apiv3-php client.
  • πŸ—‚οΈ Resource managers β€” dedicated, injectable services for contacts, lists, metadata, campaigns, campaign drafts, templates and event callbacks.
  • πŸ§ͺ Sandbox mode β€” validate payloads in CI and local development without sending a single email.
  • ⚑ Zero-config setup β€” package auto-discovery registers the provider and Mailjet facade for you.

Requirements

| Package | Supported versions | | --- | --- | | PHP | 7.4 Β· 8.x | | Laravel | 9.x – 13.x | | Symfony Mailer / Mailjet Mailer | 6.x Β· 7.x Β· 8.x |

Installation

composer require mailjet/laravel-mailjet

That's it. Package auto-discovery wires up the MailjetServiceProvider and the Mailjet facade automatically.

Manual registration (only if auto-discovery is disabled)

Laravel 11 and newer β€” bootstrap/providers.php:

use Mailjet\LaravelMailjet\MailjetServiceProvider;

return [
    App\Providers\AppServiceProvider::class,
    MailjetServiceProvider::class,
];

Laravel 10 and older β€” config/app.php:

'providers' => [
    // ...
    Mailjet\LaravelMailjet\MailjetServiceProvider::class,
],

'aliases' => [
    // ...
    'Mailjet' => Mailjet\LaravelMailjet\Facades\Mailjet::class,
],

Configuration

Grab your API key and secret from the Mailjet account settings.

1. Add your credentials to .env:

MAILJET_APIKEY=your_api_key MAILJET_APISECRET=your_api_secret [email protected] MAIL_FROM_NAME="Your App" # Optional β€” process requests without actually sending MAILJET_SANDBOX=false

2. Register the service in config/services.php:

'mailjet' => [
    'key'     => env('MAILJET_APIKEY'),
    'secret'  => env('MAILJET_APISECRET'),
    // filter_var keeps the "true"/"false" env string honest (handy in Docker)
    'sandbox' => filter_var(env('MAILJET_SANDBOX', false), FILTER_VALIDATE_BOOLEAN),
],

Need to tune the API URL, version, or the transactional/common/v4 clients? See the full configuration reference.

Sending mail with the Mailjet transport

1. Select the transport in .env:

MAIL_MAILER=mailjet

Laravel 6 and older use the MAIL_DRIVER key instead.

2. Declare the mailer in config/mail.php:

'mailers' => [
    // ...
    'mailjet' => [
        'transport' => 'mailjet',
    ],
],

3. Send as usual β€” no Mailjet-specific code required:

use Illuminate\Support\Facades\Mail;

Mail::to($user)->send(new InvoicePaid($invoice));

Make sure the from address is a verified Mailjet sender. More patterns (Mailjet templates, variables, custom headers) live in the examples guide.

Using the Mailjet API

Import the facade:

use Mailjet\LaravelMailjet\Facades\Mailjet;

Low-level requests

Mailjet::get($resource, $args, $options);
Mailjet::post($resource, $args, $options);
Mailjet::put($resource, $args, $options);
Mailjet::delete($resource, $args, $options);

Every call returns a Mailjet\Response, or throws a Mailjet\LaravelMailjet\Exception\MailjetException on an API error. Filter arguments are documented in the Mailjet API reference.

High-level helpers

Mailjet::getAllLists($filters);
Mailjet::createList($body);
Mailjet::getListRecipients($filters);
Mailjet::getSingleContact($id);
Mailjet::createContact($body);
Mailjet::createListRecipient($body);
Mailjet::editListrecipient($id, $body);

Custom requests

$client = Mailjet::getClient(); // the underlying \Mailjet\Client instance

Optional service providers

Each Mailjet resource has a focused, injectable manager. Register only the providers you use in config/app.php (or bootstrap/providers.php on Laravel 11+):

| Service provider | Manages | Contract | | --- | --- | --- | | Providers\ContactsServiceProvider | Contacts, incl. deletion (API v4) | ContactsV4Contract | | Providers\ContactsListServiceProvider | Contact lists | ContactsListContract | | Providers\ContactMetadataServiceProvider | Contact properties / metadata | ContactMetadataContract | | Providers\CampaignServiceProvider | Campaigns | CampaignContract | | Providers\CampaignDraftServiceProvider | Campaign drafts | CampaignDraftContract | | Providers\TemplateServiceProvider | Templates | TemplateServiceContract | | Providers\EventCallbackUrlServiceProvider | Event (webhook) callback URLs | EventCallbackUrlContract |

// config/app.php
'providers' => [
    // ...
    Mailjet\LaravelMailjet\Providers\ContactsServiceProvider::class,
],

Then resolve the manager wherever you need it:

use Mailjet\LaravelMailjet\Services\ContactsV4Service;

public function handle(ContactsV4Service $contacts)
{
    $contacts->delete(351406781);
}

Sandbox mode

With MAILJET_SANDBOX=true, Mailjet validates the request and returns a successful response without delivering any email β€” ideal for staging environments and automated tests.

MAILJET_SANDBOX=true

Details in the configuration reference.

Documentation

| Resource | Link | | --- | --- | | Configuration reference | docs/configuration.md | | Examples (campaigns, templates, Mailables) | docs/usage.md | | Full docs site | https://mailjet.github.io/laravel-mailjet/ | | Mailjet API v3 | https://dev.mailjet.com/ | | PHP API client | https://github.com/mailjet/mailjet-apiv3-php |

Testing

composer install
bin/phpunit

Contributing

Issues and pull requests are welcome β€” see CONTRIBUTING.md.

License

Released under the MIT License.

Comments