PHPackages                             remp/crm-remp-mailer-module - 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. remp/crm-remp-mailer-module

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

remp/crm-remp-mailer-module
===========================

CRM Mailer Module

4.4.0(5mo ago)046.9k—7.1%2[1 issues](https://github.com/remp2020/crm-remp-mailer-module/issues)[1 PRs](https://github.com/remp2020/crm-remp-mailer-module/pulls)1MITPHPPHP ^8.1

Since Jun 26Pushed 5mo ago6 watchersCompare

[ Source](https://github.com/remp2020/crm-remp-mailer-module)[ Packagist](https://packagist.org/packages/remp/crm-remp-mailer-module)[ Docs](https://remp2030.com)[ RSS](/packages/remp-crm-remp-mailer-module/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (56)Used By (1)

CRM REMP Mailer Module
======================

[](#crm-remp-mailer-module)

[![Translation status @ Weblate](https://camo.githubusercontent.com/a6be500052ee7307818d6a17aab1361a1fef5568a59cb59e5031afc7fb78b1ca/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f72656d702d63726d2f2d2f72656d705f6d61696c65722d6d6f64756c652f7376672d62616467652e737667)](https://hosted.weblate.org/projects/remp-crm/remp_mailer-module/)

REMP Mailer Module is an integration module connecting CRM with [REMP Mailer](https://github.com/remp2020/remp/tree/master/Mailer).

Module adds listener for `NotificationEvent` to send emails, and attaches widgets to allow users/admins to configure newsletter subscriptions and to see logs of all sent emails in administration.

Installing module
-----------------

[](#installing-module)

We recommend using Composer for installation and update management.

```
composer require remp/crm-remp-mailer-module
```

Enabling and configuring module
-------------------------------

[](#enabling-and-configuring-module)

Add installed extension to your `app/config/config.neon` file.

```
extensions:
	remp_mailer: Crm\RempMailerModule\DI\RempMailerModuleExtension
```

When added, you need to provide URL of REMP Mailer instance and API token that CRM should use to communicate with Mailer.

Amend your configuration file and replace the example values with real ones:

```
remp_mailer:
    # Base URL where mailer is hosted.
    host: http://mailer.remp.press

    # API token to communicate with Mailer. By default the token can be acquired in REMP SSO.
    api_token: abcdef123456789
```

If the configuration is incomplete, initialization will log an error to your configured logger and won't enable the module in CRM.

When everything is ready, make sure you update CRM internal configuration by running following commands (they should always be part of your release process):

```
php bin/command.php api:generate_access
php bin/command.php application:seed

```

Configurable services
---------------------

[](#configurable-services)

You can disallow subscription to newsletters for users which haven't been confirmed yet (based on `users.confirmed_at` DB column). The feature is disabled by default and you can enable it by adding following snippet to your `config.neon`:

```
services:
	mailerMailerConfig:
		setup:
			- setSubscribeOnlyConfirmedUser(true)
```

API documentation
-----------------

[](#api-documentation)

All examples use `http://crm.press` as a base domain. Please change the host to the one you use before executing the examples.

All examples use `XXX` as a default value for authorization token, please replace it with the real tokens:

- *API tokens.* Standard API keys for server-server communication. It identifies the calling application as a whole. They can be generated in CRM Admin (`/api/api-tokens-admin/`) and each API key has to be whitelisted to access specific API endpoints. By default the API key has access to no endpoint.
- *User tokens.* Generated for each user during the login process, token identify single user when communicating between different parts of the system. The token can be read:
    - From `n_token` cookie if the user was logged in via CRM.
    - From the response of [`/api/v1/users/login` endpoint](https://github.com/remp2020/crm-users-module#post-apiv1userslogin) - you're free to store the response into your own cookie/local storage/session.

API responses can contain following HTTP codes:

ValueDescription200 OKSuccessful response, default value400 Bad RequestInvalid request (missing required parameters)403 ForbiddenThe authorization failed (provided token was not valid)404 Not foundReferenced resource wasn't foundIf possible, the response includes `application/json` encoded payload with message explaining the error further.

---

#### POST `/api/v1/mailer/subscribe`

[](#post-apiv1mailersubscribe)

API endpoint calls REMP Mailer api endpoint and subscribes user to given mail type and variant.

##### *Headers:*

[](#headers)

NameValueRequiredDescriptionAuthorizationBearer *String*yesUser token.##### *Example:*

[](#example)

```
curl --location --request POST 'http://crm.press/api/v1/mailer/subscribe' \
--header 'Authorization: Bearer XXX' \
--form 'mail_type_code="alerts"' \
--form 'variant_code="daily"'
```

Response:

```
{
    "status": "ok"
}
```

---

#### POST `/api/v1/mailer/unsubscribe`

[](#post-apiv1mailerunsubscribe)

API endpoint calls REMP Mailer api endpoint and unsubscribes user to given mail type and variant.

##### *Headers:*

[](#headers-1)

NameValueRequiredDescriptionAuthorizationBearer *String*yesUser token.##### *Example:*

[](#example-1)

```
curl --location --request POST 'http://crm.press/api/v1/mailer/unsubscribe' \
--header 'Authorization: Bearer XXX' \
--form 'mail_type_code="alerts"' \
--form 'variant_code="daily"'
```

Response:

```
{
    "status": "ok"
}
```

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance71

Regular maintenance activity

Popularity30

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity77

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~36 days

Recently: every ~61 days

Total

55

Last Release

175d ago

Major Versions

0.38.0 → 1.0.0-beta22022-02-03

0.39.0 → 1.0.02022-03-29

1.2.0 → 2.0.02022-08-25

2.11.0 → 3.0.02024-01-22

3.7.0 → 4.0.02025-03-24

PHP version history (5 changes)0.15.0PHP ^7.1

0.29.0PHP ^7.3

0.35.0PHP ^7.4

2.0.0PHP ^8.0

3.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c733f9bd683c3814197d8a532b7da1ba1f631bb1efe1cde5f064feab1e24877?d=identicon)[rootpd](/maintainers/rootpd)

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

![](https://www.gravatar.com/avatar/2c30fdbc85cda35b94f7f59399918193a0289152281abcef344ec9ee82864177?d=identicon)[markoph](/maintainers/markoph)

---

Top Contributors

[![rootpd](https://avatars.githubusercontent.com/u/812909?v=4)](https://github.com/rootpd "rootpd (65 commits)")[![markoph](https://avatars.githubusercontent.com/u/6843562?v=4)](https://github.com/markoph "markoph (38 commits)")[![miroc](https://avatars.githubusercontent.com/u/1230714?v=4)](https://github.com/miroc "miroc (18 commits)")[![Matefko](https://avatars.githubusercontent.com/u/22897457?v=4)](https://github.com/Matefko "Matefko (10 commits)")[![zoldia](https://avatars.githubusercontent.com/u/1526070?v=4)](https://github.com/zoldia "zoldia (9 commits)")[![lubos-michalik](https://avatars.githubusercontent.com/u/63700066?v=4)](https://github.com/lubos-michalik "lubos-michalik (4 commits)")[![weblate](https://avatars.githubusercontent.com/u/1607653?v=4)](https://github.com/weblate "weblate (4 commits)")[![burithetech](https://avatars.githubusercontent.com/u/3502143?v=4)](https://github.com/burithetech "burithetech (4 commits)")[![davidkvasnovsky](https://avatars.githubusercontent.com/u/12381721?v=4)](https://github.com/davidkvasnovsky "davidkvasnovsky (2 commits)")[![tomaj](https://avatars.githubusercontent.com/u/446736?v=4)](https://github.com/tomaj "tomaj (2 commits)")

### Embed Badge

![Health badge](/badges/remp-crm-remp-mailer-module/health.svg)

```
[![Health](https://phpackages.com/badges/remp-crm-remp-mailer-module/health.svg)](https://phpackages.com/packages/remp-crm-remp-mailer-module)
```

###  Alternatives

[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[eduardokum/laravel-mail-auto-embed

Library for embed images in emails automatically

1702.0M5](/packages/eduardokum-laravel-mail-auto-embed)

PHPackages © 2026

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