PHPackages                             symfony/turbo-smtp-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. symfony/turbo-smtp-mailer

ActiveSymfony-mailer-bridge

symfony/turbo-smtp-mailer
=========================

Symfony TurboSMTP Mailer Bridge

8.2.x-dev(today)00MITPHPPHP &gt;=8.4.1

Since Aug 1Pushed todayCompare

[ Source](https://github.com/symfony/turbo-smtp-mailer)[ Packagist](https://packagist.org/packages/symfony/turbo-smtp-mailer)[ Docs](https://symfony.com)[ Fund](https://symfony.com/sponsor)[ GitHub Sponsors](https://github.com/fabpot)[ RSS](/packages/symfony-turbo-smtp-mailer/feed)WikiDiscussions 8.2 Synced today

READMEChangelogDependencies (4)Versions (1)Used By (0)

TurboSMTP Bridge
================

[](#turbosmtp-bridge)

Provides TurboSMTP integration for Symfony Mailer.

Configuration example:

```
# SMTP
MAILER_DSN=turbosmtp+smtp://KEY:SECRET@default

# SMTP (EU region)
MAILER_DSN=turbosmtp+smtp://KEY:SECRET@pro.eu.turbo-smtp.com

# API
MAILER_DSN=turbosmtp+api://KEY:SECRET@default

# API (EU region)
MAILER_DSN=turbosmtp+api://KEY:SECRET@api.eu.turbo-smtp.com
```

where:

- `KEY` is your TurboSMTP Consumer Key
- `SECRET` is your TurboSMTP Consumer Secret

Use the `default` host to send through the non-EU endpoint (`api.turbo-smtp.com` for the API, `pro.turbo-smtp.com` for SMTP). EU accounts must set the corresponding EU host (`api.eu.turbo-smtp.com` or `pro.eu.turbo-smtp.com`).

Webhook
-------

[](#webhook)

Configure the TurboSMTP Event Webhook in your TurboSMTP dashboard, under Settings &gt; Notifications, to point at your application, then create a route:

```
framework:
    webhook:
        routing:
            turbosmtp:
                service: mailer.webhook.request_parser.turbosmtp
                secret: '%env(TURBOSMTP_WEBHOOK_SECRET)%' # optional, see below
```

And a consumer:

```
use Symfony\Component\RemoteEvent\Attribute\AsRemoteEventConsumer;
use Symfony\Component\RemoteEvent\Consumer\ConsumerInterface;
use Symfony\Component\RemoteEvent\Event\Mailer\MailerDeliveryEvent;
use Symfony\Component\RemoteEvent\Event\Mailer\MailerEngagementEvent;
use Symfony\Component\RemoteEvent\RemoteEvent;

#[AsRemoteEventConsumer(name: 'turbosmtp')]
class TurboSmtpConsumer implements ConsumerInterface
{
    public function consume(RemoteEvent $event): void
    {
        if ($event instanceof MailerDeliveryEvent) {
            // handle processed, delivered, deferred, bounce and dropped events
        } elseif ($event instanceof MailerEngagementEvent) {
            // handle open, click, unsubscribe and spam events
        }
    }
}
```

TurboSMTP does not sign its webhook requests. Authenticating them is optional: if a route `secret` is set, requests are expected to carry matching HTTP Basic credentials, otherwise no check is performed. To enable it, set HTTP Basic credentials on the webhook URL in your TurboSMTP dashboard (`https://USERNAME:PASSWORD@example.com/webhook/turbosmtp`) and configure the same `USERNAME:PASSWORD` pair as the route secret. Requests whose credentials do not match are then rejected with a 403.

Sponsor
-------

[](#sponsor)

This package is looking for a [backer](https://symfony.com/backers).

Help Symfony by [sponsoring](https://symfony.com/sponsor) its development!

Resources
---------

[](#resources)

- [Contributing](https://symfony.com/doc/current/contributing/index.html)
- [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls)in the [main Symfony repository](https://github.com/symfony/symfony)

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 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

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/47313?v=4)[Fabien Potencier](/maintainers/fabpot)[@fabpot](https://github.com/fabpot)

---

Top Contributors

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

---

Tags

componentphpsymfonysymfony-component

### Embed Badge

![Health badge](/badges/symfony-turbo-smtp-mailer/health.svg)

```
[![Health](https://phpackages.com/badges/symfony-turbo-smtp-mailer/health.svg)](https://phpackages.com/packages/symfony-turbo-smtp-mailer)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k556.2M20.9k](/packages/laravel-framework)[symfony/symfony

The Symfony PHP framework

31.4k87.4M2.2k](/packages/symfony-symfony)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6943.5M441](/packages/drupal-core-recommended)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M640](/packages/shopware-core)

PHPackages © 2026

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