PHPackages                             etailors/mautic-amazon-ses - 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. etailors/mautic-amazon-ses

ActiveMautic-plugin[Mail &amp; Notifications](/categories/mail)

etailors/mautic-amazon-ses
==========================

Amazon SES Mailer Plugin for Mautic

1.0.31(3mo ago)522.0k↑35%44[6 issues](https://github.com/pm-pmaas/etailors_amazon_ses/issues)[1 PRs](https://github.com/pm-pmaas/etailors_amazon_ses/pulls)GPL-3.0-or-laterPHPPHP &gt;=8.1.0

Since Apr 14Pushed 2mo ago5 watchersCompare

[ Source](https://github.com/pm-pmaas/etailors_amazon_ses)[ Packagist](https://packagist.org/packages/etailors/mautic-amazon-ses)[ RSS](/packages/etailors-mautic-amazon-ses/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (81)Used By (0)

Mautic AWS SES Plugin with SNS Callback
=======================================

[](#mautic-aws-ses-plugin-with-sns-callback)

This plugin provides integration between [Mautic 5, 6 and 7](https://www.mautic.org) and [Amazon SES](https://aws.amazon.com/ses/) for sending emails through AWS. It also integrates with [Amazon SNS](https://aws.amazon.com/sns/) for handling email feedback such as bounces and complaints via callbacks. (PHP &gt;= 8.1 required; Note: Mautic 7 itself requires PHP 8.2)

This is a custom plugin inspired by the structure of:

- [mabumusa1/ses-plugin](https://github.com/mabumusa1/ses-plugin)
- [ts-navghane/sparkpost-plugin](https://github.com/ts-navghane/sparkpost-plugin)

Feel free to suggest improvements or provide feedback — this is my first Mautic plugin and community contributions are welcome.

---

Features
--------

[](#features)

- Send emails through Amazon SES using the API.
- Support for setting AWS regions and optional custom rate limits in the DSN.
- Integration with Amazon SNS to process bounces and complaints via callback.
- Built-in **rate limiting** to honor SES sending quotas.
- Dynamic **batch size** matching the current SES max send rate.
- Auto-fetch and cache your SES sending quota.
- Manual override of rate limit with `ratelimit` DSN option.
- Optional retry handling for partial email failures.

---

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

[](#installation)

### 1. Download and Install the Plugin

[](#1-download-and-install-the-plugin)

#### Install manual

[](#install-manual)

1. Download or clone the repository to your Mautic plugins directory:

    ```
    cd /path/to/your/mautic/plugins
    git clone https://github.com/yourusername/mautic-aws-ses-plugin.git AmazonSesBundle
    ```
2. Clear Mautic’s cache:

    ```
    php /path/to/mautic/bin/console cache:clear
    ```
3. Go to **Mautic Settings &gt; Plugins** and click the “Install/Update Plugins” button.

---

#### Install via Composer

[](#install-via-composer)

If you prefer installing via Composer, run the following command from your Mautic root directory:

```
composer require etailors/mautic-amazon-ses:^1.0 -W
```

Version number

Then clear the cache and reload the plugins:

```
rm -rf var/cache/*
php bin/console mautic:plugins:reload
```

> **Note:**
> The plugin will automatically install into `plugins/AmazonSesBundle`.

---

### 2. Configure Amazon SES Settings

[](#2-configure-amazon-ses-settings)

1. In Mautic, navigate to **Settings &gt; Email Settings**.
2. Select the newly installed **AWS SES** option.
3. In the **DSN** field, enter your connection string in the following format:

    ```
    mautic+ses+api://:@default?region=&ratelimit=14

    ```

    - Replace `` and `` with your AWS credentials.
    - Replace `` with your AWS region (e.g., `us-east-1`).
    - Optionally set `ratelimit` to override the SES max send rate manually.
4. Set the region in the `options` parameter, for example:

    ```
    Label: region   Value: eu-west-1

    ```

[![Amazon SES Integration](https://github.com/pm-pmaas/etailors_amazon_ses/raw/1.0.1/Assets/img/mautic-ses-dsn.png)](https://github.com/pm-pmaas/etailors_amazon_ses/blob/1.0.1/Assets/img/mautic-ses-dsn.png)

---

### 3. AWS SES Configuration

[](#3-aws-ses-configuration)

1. Ensure that you have verified your domain and email addresses in AWS SES.
2. Set up the appropriate IAM user with permissions to send emails via SES.
    **Please make sure you create a new IAM user directly via IAM instead of upgrading an SMTP user with the permission: sending via SES API.**

    There are known issues when upgrading SMTP-only users — see: [issue #28](https://github.com/pm-pmaas/etailors_amazon_ses/issues/28).

Your IAM user must have permission to send and get account limits. Here’s an example policy:

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSending",
      "Effect": "Allow",
      "Action": [
        "ses:SendEmail",
        "ses:SendBulkEmail"
      ],
      "Resource": "arn:aws:ses:*::identity/*"
    },
    {
      "Sid": "AllowGetAccount",
      "Effect": "Allow",
      "Action": [
        "ses:GetAccount"
      ],
      "Resource": "*"
    }
  ]
}
```

---

### 4. Available Regions

[](#4-available-regions)

```
af-south-1
ap-northeast-1
ap-northeast-2
ap-south-1
ap-southeast-1
ap-southeast-2
ca-central-1
eu-central-1
eu-north-1
eu-west-1
eu-west-2
eu-west-3
sa-east-1
us-east-1
us-east-2
us-gov-west-1
us-west-1
us-west-2

```

---

SNS Callback Configuration
--------------------------

[](#sns-callback-configuration)

To receive feedback from Amazon SES regarding bounces and complaints, you need to set up Amazon SNS.

1. Go to your [Amazon SNS Dashboard](https://console.aws.amazon.com/sns/v3/home).
2. Create a new **Topic** (or use an existing one) for SES feedback.
3. Subscribe to this topic with an **HTTPS endpoint** using the following URL:

    ```
    https:///mailer/callback

    ```
4. Ensure your topic sends notifications for bounces, complaints, and delivery status.
5. Test your callback configuration by sending test emails and reviewing Mautic logs to verify feedback is processed correctly.

---

Batch Limit &amp; Throttling
----------------------------

[](#batch-limit--throttling)

To avoid exceeding SES rate limits, this plugin automatically:

- Caches the current `maxSendRate` returned by AWS SES.
- Dynamically adjusts the batch size to match that rate.
- Throttles outgoing email API calls using `usleep()`.
- Allows overriding the send rate via `ratelimit` DSN option.

This prevents common errors like `TooManyRequests` while maximizing throughput.

---

Debugging
---------

[](#debugging)

- To troubleshoot email sending or SNS callback issues, check Mautic’s logs:

    ```
    /path/to/mautic/var/logs

    ```
- You can also monitor SES and SNS performance in **Amazon CloudWatch**.

---

Contributions &amp; Feedback
----------------------------

[](#contributions--feedback)

This is my first Mautic plugin, so I’m open to any feedback or improvements.
Feel free to open an issue or submit a pull request if you find a bug or have a feature request!

---

License
-------

[](#license)

This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.

---

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md) for release notes. Version 1.0.31 maintains compatibility with PHP 8.1 for Mautic 6 users, while supporting Mautic 7 (which requires PHP 8.2).

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance80

Actively maintained with recent releases

Popularity37

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 81.2% 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

Every ~11 days

Total

61

Last Release

115d ago

PHP version history (2 changes)1.0.0PHP &gt;=8.0.0

1.0.31-beta1PHP &gt;=8.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/945c2e499eab80ddf68b1a61089a161dd61ac5bdb35c2a95a7d7cc260e79bd53?d=identicon)[pm-pmaas](/maintainers/pm-pmaas)

---

Top Contributors

[![pm-pmaas](https://avatars.githubusercontent.com/u/17729447?v=4)](https://github.com/pm-pmaas "pm-pmaas (155 commits)")[![lenonleite](https://avatars.githubusercontent.com/u/218436?v=4)](https://github.com/lenonleite "lenonleite (9 commits)")[![JonasLudwig1998](https://avatars.githubusercontent.com/u/146742086?v=4)](https://github.com/JonasLudwig1998 "JonasLudwig1998 (6 commits)")[![synapdk](https://avatars.githubusercontent.com/u/37423570?v=4)](https://github.com/synapdk "synapdk (4 commits)")[![adiux](https://avatars.githubusercontent.com/u/13075514?v=4)](https://github.com/adiux "adiux (3 commits)")[![BuggerSee](https://avatars.githubusercontent.com/u/36350532?v=4)](https://github.com/BuggerSee "BuggerSee (3 commits)")[![matbcvo](https://avatars.githubusercontent.com/u/1006437?v=4)](https://github.com/matbcvo "matbcvo (2 commits)")[![dlackovic2](https://avatars.githubusercontent.com/u/68977388?v=4)](https://github.com/dlackovic2 "dlackovic2 (2 commits)")[![jos0405](https://avatars.githubusercontent.com/u/4246909?v=4)](https://github.com/jos0405 "jos0405 (1 commits)")[![AleksKeller](https://avatars.githubusercontent.com/u/234598594?v=4)](https://github.com/AleksKeller "AleksKeller (1 commits)")[![gubesch](https://avatars.githubusercontent.com/u/16289522?v=4)](https://github.com/gubesch "gubesch (1 commits)")[![abadb](https://avatars.githubusercontent.com/u/655278?v=4)](https://github.com/abadb "abadb (1 commits)")[![mabumusa1](https://avatars.githubusercontent.com/u/12627658?v=4)](https://github.com/mabumusa1 "mabumusa1 (1 commits)")[![pcottrell](https://avatars.githubusercontent.com/u/1524196?v=4)](https://github.com/pcottrell "pcottrell (1 commits)")[![pgbrandao](https://avatars.githubusercontent.com/u/732094?v=4)](https://github.com/pgbrandao "pgbrandao (1 commits)")

---

Tags

pluginMauticintegration

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/etailors-mautic-amazon-ses/health.svg)

```
[![Health](https://phpackages.com/badges/etailors-mautic-amazon-ses/health.svg)](https://phpackages.com/packages/etailors-mautic-amazon-ses)
```

###  Alternatives

[pabloveintimilla/mautic-amazon-ses

Mautic 5 plugin that provides Amazon SES as an email transport and callback to process bounces

452.4k](/packages/pabloveintimilla-mautic-amazon-ses)[mautic/grapes-js-builder-bundle

GrapesJS Builder with MJML support for Mautic

5684.1k4](/packages/mautic-grapes-js-builder-bundle)

PHPackages © 2026

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