PHPackages                             kreatif/laravel-brevo-mailer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. kreatif/laravel-brevo-mailer

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

kreatif/laravel-brevo-mailer
============================

Symfony Mailer transport for the Brevo transactional email API, for use with Laravel's Mail facade.

1.1.0(1mo ago)075MITPHPPHP ^8.2|^8.3|^8.4

Since Jul 3Pushed 1mo agoCompare

[ Source](https://github.com/kreatifIT/laravel-brevo-mailer)[ Packagist](https://packagist.org/packages/kreatif/laravel-brevo-mailer)[ Docs](https://github.com/kreatifIT/laravel-brevo-mailer)[ RSS](/packages/kreatif-laravel-brevo-mailer/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (8)Versions (2)Used By (0)

Laravel Brevo Mailer
====================

[](#laravel-brevo-mailer)

A Symfony Mailer transport for the [Brevo](https://www.brevo.com/) transactional email API (`POST /v3/smtp/email`), for use with Laravel's `Mail` facade.

Installation
------------

[](#installation)

```
composer require kreatif/laravel-brevo-mailer
```

Configuration
-------------

[](#configuration)

```
BREVO_API_KEY=xxxxx
MAIL_MAILER=brevo

```

In `config/mail.php`, add a mailer entry:

```
'brevo' => [
    'transport' => 'brevo',
],
```

No other code changes are needed — existing `Mailable`/`Notification` classes keep working unchanged; they just send through Brevo instead of SMTP.

Bounce/complaint webhook parsing
--------------------------------

[](#bouncecomplaint-webhook-parsing)

Brevo reports what happened to a mail *after* it accepted it (bounces, spam complaints, ...) via a separate webhook call to a URL you configure in Brevo. This package includes `Kreatif\BrevoMailer\Webhook\BrevoWebhookEvent` to parse that payload into a typed object, since the wire format (event names, the hyphenated `message-id` field, which events are terminal vs. Brevo-retried) is Brevo API knowledge, not app-specific:

```
use Kreatif\BrevoMailer\Webhook\BrevoWebhookEvent;

Route::post('brevo-webhook', function (Request $request) {
    foreach (BrevoWebhookEvent::manyFromArray($request->json()->all()) as $event) {
        if (!$event->isValid()) {
            continue;
        }
        // $event->type, $event->email, $event->messageId, $event->reason
        // $event->isHardBounce() / isSoftBounce() / isBlocked() / isInvalidEmail() / isSpamComplaint()
        // $event->isBounce() / $event->isTerminal() (confirmed problem, not a Brevo-retried soft bounce)

        // What to do with it (look up your own send-log record, notify
        // someone, ...) is entirely up to your app.
    }

    return response()->json(['received' => true]);
});
```

This package does **not** provide the route, auth middleware, or webhook registration itself (Brevo lets you set a custom `Authorization` header per webhook via their Create Webhook API/dashboard — use whatever auth scheme fits your app).

Scope
-----

[](#scope)

This package only implements the Brevo transport and the bounce/complaint webhook payload parser — i.e. the parts that are genuinely Brevo API knowledge, reusable regardless of app. Queueing, retry policy, delivery logging, and failure notifications are application concerns and are intentionally left to the consuming app (see `monni_service`'s `app/Mail/Concerns`, `app/Listeners/Mail`, `app/Services/Mail`, `app/Http/Controllers/Mail/BrevoWebhookController`, and `EmailLog` model for that layer).

Swapping to a different provider later (e.g. Azure Communication Services) means adding a sibling transport and changing `MAIL_MAILER`, not touching any Mailable.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance90

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

49d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c58db6e153a58764dfc820c0a9d33b0a64a26b62eb8c0051912a20edb63b6499?d=identicon)[kreatif](/maintainers/kreatif)

---

Top Contributors

[![lexplatt](https://avatars.githubusercontent.com/u/743208?v=4)](https://github.com/lexplatt "lexplatt (1 commits)")

---

Tags

laravelmailerbrevosendinbluetransactional emailkreatif

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/kreatif-laravel-brevo-mailer/health.svg)

```
[![Health](https://phpackages.com/badges/kreatif-laravel-brevo-mailer/health.svg)](https://phpackages.com/packages/kreatif-laravel-brevo-mailer)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

88212.7M189](/packages/spatie-laravel-health)[nativephp/mobile

NativePHP for Mobile

1.1k102.1k154](/packages/nativephp-mobile)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5226.7k](/packages/simplestats-io-laravel-client)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[vormkracht10/laravel-mails

Laravel Mails can collect everything you might want to track about the mails that has been sent by your Laravel app.

25060.1k](/packages/vormkracht10-laravel-mails)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
